Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/test/CodeGen/AMDGPU/merge-store-crash.ll
1 | ; RUN: llc -march=amdgcn -mcpu=verde -verify-machineinstrs < %s | FileCheck %s | 1 | ; RUN: llc -march=amdgcn -mcpu=verde -verify-machineinstrs < %s | FileCheck %s | ||
---|---|---|---|---|---|
2 | ; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck %s | 2 | ; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck %s | ||
3 | 3 | | |||
4 | ; This is used to crash in LiveIntervalAnalysis via SILoadStoreOptimizer | 4 | ; This is used to crash in LiveIntervalAnalysis via SILoadStoreOptimizer | ||
5 | ; while fixing up the merge of two ds_write instructions. | 5 | ; while fixing up the merge of two ds_write instructions. | ||
6 | 6 | | |||
7 | @tess_lds = external addrspace(3) global [8192 x i32] | 7 | @tess_lds = external addrspace(3) global [8192 x i32] | ||
8 | 8 | | |||
9 | ; CHECK-LABEL: {{^}}main: | 9 | ; CHECK-LABEL: {{^}}main: | ||
10 | ; CHECK: ds_write2_b32 | 10 | ; CHECK: ds_write_b32 | ||
11 | ; CHECK: ds_write_b32 | ||||
11 | ; CHECK: v_mov_b32_e32 v1, v0 | 12 | ; CHECK: v_mov_b32_e32 v1, v0 | ||
12 | ; CHECK: tbuffer_store_format_xyzw v[0:3], | 13 | ; CHECK: tbuffer_store_format_xyzw v[0:3], | ||
13 | define amdgpu_vs void @main(i32 inreg %arg) { | 14 | define amdgpu_vs void @main(i32 inreg %arg) { | ||
14 | main_body: | 15 | main_body: | ||
15 | %tmp = load float, float addrspace(3)* undef, align 4 | 16 | %tmp = load float, float addrspace(3)* undef, align 4 | ||
16 | %tmp1 = load float, float addrspace(3)* undef, align 4 | 17 | %tmp1 = load float, float addrspace(3)* undef, align 4 | ||
17 | store float %tmp, float addrspace(3)* null, align 4 | 18 | store float %tmp, float addrspace(3)* null, align 4 | ||
18 | %tmp2 = bitcast float %tmp to i32 | 19 | %tmp2 = bitcast float %tmp to i32 | ||
Show All 18 Lines |