xref: /llvm-project/llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/cubeid.ll (revision 04b944e23050e4e0c6ee983cc9bc17740315ea4f)
1486ed885SArthur Eubanks; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2b280ee1dSBjorn Pettersson; RUN: opt < %s -passes=instsimplify -S | FileCheck %s
3486ed885SArthur Eubanks
4486ed885SArthur Eubanksdeclare float @llvm.amdgcn.cubeid(float, float, float)
5486ed885SArthur Eubanks
6*04b944e2SNikita Popovdefine void @test(ptr %p) {
7486ed885SArthur Eubanks; CHECK-LABEL: @test(
8*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 4.000000e+00, ptr [[P:%.*]]
9*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 2.000000e+00, ptr [[P]]
10*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 4.000000e+00, ptr [[P]]
11*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 2.000000e+00, ptr [[P]]
12*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 0.000000e+00, ptr [[P]]
13*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 0.000000e+00, ptr [[P]]
14*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 5.000000e+00, ptr [[P]]
15*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 2.000000e+00, ptr [[P]]
16*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 5.000000e+00, ptr [[P]]
17*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 2.000000e+00, ptr [[P]]
18*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 0.000000e+00, ptr [[P]]
19*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 0.000000e+00, ptr [[P]]
20*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 4.000000e+00, ptr [[P]]
21*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 3.000000e+00, ptr [[P]]
22*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 4.000000e+00, ptr [[P]]
23*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 3.000000e+00, ptr [[P]]
24*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 0.000000e+00, ptr [[P]]
25*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 0.000000e+00, ptr [[P]]
26*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 5.000000e+00, ptr [[P]]
27*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 3.000000e+00, ptr [[P]]
28*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 5.000000e+00, ptr [[P]]
29*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 3.000000e+00, ptr [[P]]
30*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 0.000000e+00, ptr [[P]]
31*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 0.000000e+00, ptr [[P]]
32*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 4.000000e+00, ptr [[P]]
33*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 2.000000e+00, ptr [[P]]
34*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 4.000000e+00, ptr [[P]]
35*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 2.000000e+00, ptr [[P]]
36*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 1.000000e+00, ptr [[P]]
37*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 1.000000e+00, ptr [[P]]
38*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 5.000000e+00, ptr [[P]]
39*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 2.000000e+00, ptr [[P]]
40*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 5.000000e+00, ptr [[P]]
41*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 2.000000e+00, ptr [[P]]
42*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 1.000000e+00, ptr [[P]]
43*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 1.000000e+00, ptr [[P]]
44*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 4.000000e+00, ptr [[P]]
45*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 3.000000e+00, ptr [[P]]
46*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 4.000000e+00, ptr [[P]]
47*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 3.000000e+00, ptr [[P]]
48*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 1.000000e+00, ptr [[P]]
49*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 1.000000e+00, ptr [[P]]
50*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 5.000000e+00, ptr [[P]]
51*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 3.000000e+00, ptr [[P]]
52*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 5.000000e+00, ptr [[P]]
53*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 3.000000e+00, ptr [[P]]
54*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 1.000000e+00, ptr [[P]]
55*04b944e2SNikita Popov; CHECK-NEXT:    store volatile float 1.000000e+00, ptr [[P]]
56486ed885SArthur Eubanks; CHECK-NEXT:    ret void
57486ed885SArthur Eubanks;
58486ed885SArthur Eubanks  %p3p4p5 = call float @llvm.amdgcn.cubeid(float +3.0, float +4.0, float +5.0)
59*04b944e2SNikita Popov  store volatile float %p3p4p5, ptr %p
60486ed885SArthur Eubanks  %p3p5p4 = call float @llvm.amdgcn.cubeid(float +3.0, float +5.0, float +4.0)
61*04b944e2SNikita Popov  store volatile float %p3p5p4, ptr %p
62486ed885SArthur Eubanks  %p4p3p5 = call float @llvm.amdgcn.cubeid(float +4.0, float +3.0, float +5.0)
63*04b944e2SNikita Popov  store volatile float %p4p3p5, ptr %p
64486ed885SArthur Eubanks  %p4p5p3 = call float @llvm.amdgcn.cubeid(float +4.0, float +5.0, float +3.0)
65*04b944e2SNikita Popov  store volatile float %p4p5p3, ptr %p
66486ed885SArthur Eubanks  %p5p3p4 = call float @llvm.amdgcn.cubeid(float +5.0, float +3.0, float +4.0)
67*04b944e2SNikita Popov  store volatile float %p5p3p4, ptr %p
68486ed885SArthur Eubanks  %p5p4p3 = call float @llvm.amdgcn.cubeid(float +5.0, float +4.0, float +3.0)
69*04b944e2SNikita Popov  store volatile float %p5p4p3, ptr %p
70486ed885SArthur Eubanks  %p3p4n5 = call float @llvm.amdgcn.cubeid(float +3.0, float +4.0, float -5.0)
71*04b944e2SNikita Popov  store volatile float %p3p4n5, ptr %p
72486ed885SArthur Eubanks  %p3p5n4 = call float @llvm.amdgcn.cubeid(float +3.0, float +5.0, float -4.0)
73*04b944e2SNikita Popov  store volatile float %p3p5n4, ptr %p
74486ed885SArthur Eubanks  %p4p3n5 = call float @llvm.amdgcn.cubeid(float +4.0, float +3.0, float -5.0)
75*04b944e2SNikita Popov  store volatile float %p4p3n5, ptr %p
76486ed885SArthur Eubanks  %p4p5n3 = call float @llvm.amdgcn.cubeid(float +4.0, float +5.0, float -3.0)
77*04b944e2SNikita Popov  store volatile float %p4p5n3, ptr %p
78486ed885SArthur Eubanks  %p5p3n4 = call float @llvm.amdgcn.cubeid(float +5.0, float +3.0, float -4.0)
79*04b944e2SNikita Popov  store volatile float %p5p3n4, ptr %p
80486ed885SArthur Eubanks  %p5p4n3 = call float @llvm.amdgcn.cubeid(float +5.0, float +4.0, float -3.0)
81*04b944e2SNikita Popov  store volatile float %p5p4n3, ptr %p
82486ed885SArthur Eubanks  %p3n4p5 = call float @llvm.amdgcn.cubeid(float +3.0, float -4.0, float +5.0)
83*04b944e2SNikita Popov  store volatile float %p3n4p5, ptr %p
84486ed885SArthur Eubanks  %p3n5p4 = call float @llvm.amdgcn.cubeid(float +3.0, float -5.0, float +4.0)
85*04b944e2SNikita Popov  store volatile float %p3n5p4, ptr %p
86486ed885SArthur Eubanks  %p4n3p5 = call float @llvm.amdgcn.cubeid(float +4.0, float -3.0, float +5.0)
87*04b944e2SNikita Popov  store volatile float %p4n3p5, ptr %p
88486ed885SArthur Eubanks  %p4n5p3 = call float @llvm.amdgcn.cubeid(float +4.0, float -5.0, float +3.0)
89*04b944e2SNikita Popov  store volatile float %p4n5p3, ptr %p
90486ed885SArthur Eubanks  %p5n3p4 = call float @llvm.amdgcn.cubeid(float +5.0, float -3.0, float +4.0)
91*04b944e2SNikita Popov  store volatile float %p5n3p4, ptr %p
92486ed885SArthur Eubanks  %p5n4p3 = call float @llvm.amdgcn.cubeid(float +5.0, float -4.0, float +3.0)
93*04b944e2SNikita Popov  store volatile float %p5n4p3, ptr %p
94486ed885SArthur Eubanks  %p3n4n5 = call float @llvm.amdgcn.cubeid(float +3.0, float -4.0, float -5.0)
95*04b944e2SNikita Popov  store volatile float %p3n4n5, ptr %p
96486ed885SArthur Eubanks  %p3n5n4 = call float @llvm.amdgcn.cubeid(float +3.0, float -5.0, float -4.0)
97*04b944e2SNikita Popov  store volatile float %p3n5n4, ptr %p
98486ed885SArthur Eubanks  %p4n3n5 = call float @llvm.amdgcn.cubeid(float +4.0, float -3.0, float -5.0)
99*04b944e2SNikita Popov  store volatile float %p4n3n5, ptr %p
100486ed885SArthur Eubanks  %p4n5n3 = call float @llvm.amdgcn.cubeid(float +4.0, float -5.0, float -3.0)
101*04b944e2SNikita Popov  store volatile float %p4n5n3, ptr %p
102486ed885SArthur Eubanks  %p5n3n4 = call float @llvm.amdgcn.cubeid(float +5.0, float -3.0, float -4.0)
103*04b944e2SNikita Popov  store volatile float %p5n3n4, ptr %p
104486ed885SArthur Eubanks  %p5n4n3 = call float @llvm.amdgcn.cubeid(float +5.0, float -4.0, float -3.0)
105*04b944e2SNikita Popov  store volatile float %p5n4n3, ptr %p
106486ed885SArthur Eubanks  %n3p4p5 = call float @llvm.amdgcn.cubeid(float -3.0, float +4.0, float +5.0)
107*04b944e2SNikita Popov  store volatile float %n3p4p5, ptr %p
108486ed885SArthur Eubanks  %n3p5p4 = call float @llvm.amdgcn.cubeid(float -3.0, float +5.0, float +4.0)
109*04b944e2SNikita Popov  store volatile float %n3p5p4, ptr %p
110486ed885SArthur Eubanks  %n4p3p5 = call float @llvm.amdgcn.cubeid(float -4.0, float +3.0, float +5.0)
111*04b944e2SNikita Popov  store volatile float %n4p3p5, ptr %p
112486ed885SArthur Eubanks  %n4p5p3 = call float @llvm.amdgcn.cubeid(float -4.0, float +5.0, float +3.0)
113*04b944e2SNikita Popov  store volatile float %n4p5p3, ptr %p
114486ed885SArthur Eubanks  %n5p3p4 = call float @llvm.amdgcn.cubeid(float -5.0, float +3.0, float +4.0)
115*04b944e2SNikita Popov  store volatile float %n5p3p4, ptr %p
116486ed885SArthur Eubanks  %n5p4p3 = call float @llvm.amdgcn.cubeid(float -5.0, float +4.0, float +3.0)
117*04b944e2SNikita Popov  store volatile float %n5p4p3, ptr %p
118486ed885SArthur Eubanks  %n3p4n5 = call float @llvm.amdgcn.cubeid(float -3.0, float +4.0, float -5.0)
119*04b944e2SNikita Popov  store volatile float %n3p4n5, ptr %p
120486ed885SArthur Eubanks  %n3p5n4 = call float @llvm.amdgcn.cubeid(float -3.0, float +5.0, float -4.0)
121*04b944e2SNikita Popov  store volatile float %n3p5n4, ptr %p
122486ed885SArthur Eubanks  %n4p3n5 = call float @llvm.amdgcn.cubeid(float -4.0, float +3.0, float -5.0)
123*04b944e2SNikita Popov  store volatile float %n4p3n5, ptr %p
124486ed885SArthur Eubanks  %n4p5n3 = call float @llvm.amdgcn.cubeid(float -4.0, float +5.0, float -3.0)
125*04b944e2SNikita Popov  store volatile float %n4p5n3, ptr %p
126486ed885SArthur Eubanks  %n5p3n4 = call float @llvm.amdgcn.cubeid(float -5.0, float +3.0, float -4.0)
127*04b944e2SNikita Popov  store volatile float %n5p3n4, ptr %p
128486ed885SArthur Eubanks  %n5p4n3 = call float @llvm.amdgcn.cubeid(float -5.0, float +4.0, float -3.0)
129*04b944e2SNikita Popov  store volatile float %n5p4n3, ptr %p
130486ed885SArthur Eubanks  %n3n4p5 = call float @llvm.amdgcn.cubeid(float -3.0, float -4.0, float +5.0)
131*04b944e2SNikita Popov  store volatile float %n3n4p5, ptr %p
132486ed885SArthur Eubanks  %n3n5p4 = call float @llvm.amdgcn.cubeid(float -3.0, float -5.0, float +4.0)
133*04b944e2SNikita Popov  store volatile float %n3n5p4, ptr %p
134486ed885SArthur Eubanks  %n4n3p5 = call float @llvm.amdgcn.cubeid(float -4.0, float -3.0, float +5.0)
135*04b944e2SNikita Popov  store volatile float %n4n3p5, ptr %p
136486ed885SArthur Eubanks  %n4n5p3 = call float @llvm.amdgcn.cubeid(float -4.0, float -5.0, float +3.0)
137*04b944e2SNikita Popov  store volatile float %n4n5p3, ptr %p
138486ed885SArthur Eubanks  %n5n3p4 = call float @llvm.amdgcn.cubeid(float -5.0, float -3.0, float +4.0)
139*04b944e2SNikita Popov  store volatile float %n5n3p4, ptr %p
140486ed885SArthur Eubanks  %n5n4p3 = call float @llvm.amdgcn.cubeid(float -5.0, float -4.0, float +3.0)
141*04b944e2SNikita Popov  store volatile float %n5n4p3, ptr %p
142486ed885SArthur Eubanks  %n3n4n5 = call float @llvm.amdgcn.cubeid(float -3.0, float -4.0, float -5.0)
143*04b944e2SNikita Popov  store volatile float %n3n4n5, ptr %p
144486ed885SArthur Eubanks  %n3n5n4 = call float @llvm.amdgcn.cubeid(float -3.0, float -5.0, float -4.0)
145*04b944e2SNikita Popov  store volatile float %n3n5n4, ptr %p
146486ed885SArthur Eubanks  %n4n3n5 = call float @llvm.amdgcn.cubeid(float -4.0, float -3.0, float -5.0)
147*04b944e2SNikita Popov  store volatile float %n4n3n5, ptr %p
148486ed885SArthur Eubanks  %n4n5n3 = call float @llvm.amdgcn.cubeid(float -4.0, float -5.0, float -3.0)
149*04b944e2SNikita Popov  store volatile float %n4n5n3, ptr %p
150486ed885SArthur Eubanks  %n5n3n4 = call float @llvm.amdgcn.cubeid(float -5.0, float -3.0, float -4.0)
151*04b944e2SNikita Popov  store volatile float %n5n3n4, ptr %p
152486ed885SArthur Eubanks  %n5n4n3 = call float @llvm.amdgcn.cubeid(float -5.0, float -4.0, float -3.0)
153*04b944e2SNikita Popov  store volatile float %n5n4n3, ptr %p
154486ed885SArthur Eubanks  ret void
155486ed885SArthur Eubanks}
156