annotate test/CodeGen/AMDGPU/adjust-writemask-invalid-copy.ll @ 146:3fc4d5c3e21e

set tail call flag for code segment in CGCAll
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 23 Dec 2018 19:23:36 +0900
parents 3a76565eade5
children c2174574ed3a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
134
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
1 ; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
2
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
3 ; GCN-LABEL: {{^}}adjust_writemask_crash_0_nochain:
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
4 ; GCN: image_get_lod v0, v{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}} dmask:0x2
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
5 ; GCN-NOT: v1
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
6 ; GCN-NOT: v0
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
7 ; GCN: buffer_store_dword v0
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
8 define amdgpu_ps void @adjust_writemask_crash_0_nochain() #0 {
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
9 main_body:
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
10 %tmp = call <2 x float> @llvm.amdgcn.image.getlod.v2f32.v2f32.v8i32(<2 x float> undef, <8 x i32> undef, <4 x i32> undef, i32 3, i1 false, i1 false, i1 false, i1 false, i1 false)
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
11 %tmp1 = bitcast <2 x float> %tmp to <2 x i32>
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
12 %tmp2 = shufflevector <2 x i32> %tmp1, <2 x i32> undef, <4 x i32> <i32 1, i32 undef, i32 undef, i32 undef>
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
13 %tmp3 = bitcast <4 x i32> %tmp2 to <4 x float>
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
14 %tmp4 = extractelement <4 x float> %tmp3, i32 0
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
15 store volatile float %tmp4, float addrspace(1)* undef
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
16 ret void
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
17 }
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
18
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
19 ; GCN-LABEL: {{^}}adjust_writemask_crash_1_nochain:
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
20 ; GCN: image_get_lod v0, v{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}} dmask:0x1
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
21 ; GCN-NOT: v1
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
22 ; GCN-NOT: v0
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
23 ; GCN: buffer_store_dword v0
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
24 define amdgpu_ps void @adjust_writemask_crash_1_nochain() #0 {
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
25 main_body:
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
26 %tmp = call <2 x float> @llvm.amdgcn.image.getlod.v2f32.v2f32.v8i32(<2 x float> undef, <8 x i32> undef, <4 x i32> undef, i32 3, i1 false, i1 false, i1 false, i1 false, i1 false)
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
27 %tmp1 = bitcast <2 x float> %tmp to <2 x i32>
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
28 %tmp2 = shufflevector <2 x i32> %tmp1, <2 x i32> undef, <4 x i32> <i32 1, i32 0, i32 undef, i32 undef>
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
29 %tmp3 = bitcast <4 x i32> %tmp2 to <4 x float>
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
30 %tmp4 = extractelement <4 x float> %tmp3, i32 1
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
31 store volatile float %tmp4, float addrspace(1)* undef
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
32 ret void
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
33 }
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
34
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
35 ; GCN-LABEL: {{^}}adjust_writemask_crash_0_chain:
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
36 ; GCN: image_sample v0, v{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}} dmask:0x2
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
37 ; GCN-NOT: v1
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
38 ; GCN-NOT: v0
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
39 ; GCN: buffer_store_dword v0
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
40 define amdgpu_ps void @adjust_writemask_crash_0_chain() #0 {
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
41 main_body:
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
42 %tmp = call <2 x float> @llvm.amdgcn.image.sample.v2f32.v2f32.v8i32(<2 x float> undef, <8 x i32> undef, <4 x i32> undef, i32 3, i1 false, i1 false, i1 false, i1 false, i1 false)
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
43 %tmp1 = bitcast <2 x float> %tmp to <2 x i32>
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
44 %tmp2 = shufflevector <2 x i32> %tmp1, <2 x i32> undef, <4 x i32> <i32 1, i32 undef, i32 undef, i32 undef>
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
45 %tmp3 = bitcast <4 x i32> %tmp2 to <4 x float>
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
46 %tmp4 = extractelement <4 x float> %tmp3, i32 0
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
47 store volatile float %tmp4, float addrspace(1)* undef
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
48 ret void
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
49 }
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
50
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
51 ; GCN-LABEL: {{^}}adjust_writemask_crash_1_chain:
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
52 ; GCN: image_sample v0, v{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}}, s{{\[[0-9]+:[0-9]+\]}} dmask:0x1
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
53 ; GCN-NOT: v1
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
54 ; GCN-NOT: v0
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
55 ; GCN: buffer_store_dword v0
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
56 define amdgpu_ps void @adjust_writemask_crash_1_chain() #0 {
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
57 main_body:
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
58 %tmp = call <2 x float> @llvm.amdgcn.image.sample.v2f32.v2f32.v8i32(<2 x float> undef, <8 x i32> undef, <4 x i32> undef, i32 3, i1 false, i1 false, i1 false, i1 false, i1 false)
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
59 %tmp1 = bitcast <2 x float> %tmp to <2 x i32>
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
60 %tmp2 = shufflevector <2 x i32> %tmp1, <2 x i32> undef, <4 x i32> <i32 1, i32 0, i32 undef, i32 undef>
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
61 %tmp3 = bitcast <4 x i32> %tmp2 to <4 x float>
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
62 %tmp4 = extractelement <4 x float> %tmp3, i32 1
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
63 store volatile float %tmp4, float addrspace(1)* undef
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
64 ret void
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
65 }
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
66
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
67 define amdgpu_ps void @adjust_writemask_crash_0_v4() #0 {
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
68 main_body:
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
69 %tmp = call <4 x float> @llvm.amdgcn.image.getlod.v4f32.v2f32.v8i32(<2 x float> undef, <8 x i32> undef, <4 x i32> undef, i32 5, i1 false, i1 false, i1 false, i1 false, i1 false)
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
70 %tmp1 = bitcast <4 x float> %tmp to <4 x i32>
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
71 %tmp2 = shufflevector <4 x i32> %tmp1, <4 x i32> undef, <4 x i32> <i32 1, i32 undef, i32 undef, i32 undef>
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
72 %tmp3 = bitcast <4 x i32> %tmp2 to <4 x float>
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
73 %tmp4 = extractelement <4 x float> %tmp3, i32 0
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
74 store volatile float %tmp4, float addrspace(1)* undef
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
75 ret void
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
76 }
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
77
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
78
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
79 declare <2 x float> @llvm.amdgcn.image.sample.v2f32.v2f32.v8i32(<2 x float>, <8 x i32>, <4 x i32>, i32, i1, i1, i1, i1, i1) #1
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
80 declare <2 x float> @llvm.amdgcn.image.getlod.v2f32.v2f32.v8i32(<2 x float>, <8 x i32>, <4 x i32>, i32, i1, i1, i1, i1, i1) #1
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
81 declare <4 x float> @llvm.amdgcn.image.getlod.v4f32.v2f32.v8i32(<2 x float>, <8 x i32>, <4 x i32>, i32, i1, i1, i1, i1, i1) #1
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
82
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
83 attributes #0 = { nounwind }
3a76565eade5 update 5.0.1
mir3636
parents:
diff changeset
84 attributes #1 = { nounwind readonly }