AMDGPU: Remove SIPrepareScratchRegs
[oota-llvm.git] / test / CodeGen / AMDGPU / vgpr-spill-emergency-stack-slot.ll
1 ; RUN: llc -march=amdgcn -mcpu=tahiti -mattr=+vgpr-spilling -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=SI %s
2 ; RUN: llc -march=amdgcn -mcpu=fiji -mattr=+vgpr-spilling -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=VI %s
3
4 ; This ends up using all 255 registers and requires register
5 ; scavenging which will fail to find an unsued register.
6
7 ; Check the ScratchSize to avoid regressions from spilling
8 ; intermediate register class copies.
9
10 ; FIXME: The same register is initialized to 0 for every spill.
11
12 ; GCN-LABEL: {{^}}main:
13
14 ; GCN: s_mov_b32 s8, SCRATCH_RSRC_DWORD0
15 ; GCN-NEXT: s_mov_b32 s9, SCRATCH_RSRC_DWORD1
16 ; GCN-NEXT: s_mov_b32 s10, -1
17 ; SI-NEXT: s_mov_b32 s11, 0x80f000
18 ; VI-NEXT: s_mov_b32 s11, 0x800000
19
20 ; s12 is offset user SGPR
21 ; GCN: buffer_store_dword {{v[0-9]+}}, s[8:11], s12 offset:{{[0-9]+}} ; 4-byte Folded Spill
22
23 ; GCN: NumVgprs: 256
24 ; GCN: ScratchSize: 1024
25
26 define void @main([9 x <16 x i8>] addrspace(2)* byval %arg, [17 x <16 x i8>] addrspace(2)* byval %arg1, [17 x <4 x i32>] addrspace(2)* byval %arg2, [34 x <8 x i32>] addrspace(2)* byval %arg3, [16 x <16 x i8>] addrspace(2)* byval %arg4, i32 inreg %arg5, i32 inreg %arg6, i32 %arg7, i32 %arg8, i32 %arg9, i32 %arg10) #0 {
27 bb:
28   %tmp = getelementptr [17 x <16 x i8>], [17 x <16 x i8>] addrspace(2)* %arg1, i64 0, i64 0
29   %tmp11 = load <16 x i8>, <16 x i8> addrspace(2)* %tmp, align 16, !tbaa !0
30   %tmp12 = call float @llvm.SI.load.const(<16 x i8> %tmp11, i32 0)
31   %tmp13 = call float @llvm.SI.load.const(<16 x i8> %tmp11, i32 16)
32   %tmp14 = call float @llvm.SI.load.const(<16 x i8> %tmp11, i32 32)
33   %tmp15 = getelementptr [16 x <16 x i8>], [16 x <16 x i8>] addrspace(2)* %arg4, i64 0, i64 0
34   %tmp16 = load <16 x i8>, <16 x i8> addrspace(2)* %tmp15, align 16, !tbaa !0
35   %tmp17 = add i32 %arg5, %arg7
36   %tmp18 = call <4 x float> @llvm.SI.vs.load.input(<16 x i8> %tmp16, i32 0, i32 %tmp17)
37   %tmp19 = extractelement <4 x float> %tmp18, i32 0
38   %tmp20 = extractelement <4 x float> %tmp18, i32 1
39   %tmp21 = extractelement <4 x float> %tmp18, i32 2
40   %tmp22 = extractelement <4 x float> %tmp18, i32 3
41   %tmp23 = bitcast float %tmp14 to i32
42   br label %bb24
43
44 bb24:                                             ; preds = %bb157, %bb
45   %tmp25 = phi float [ 0.000000e+00, %bb ], [ %tmp350, %bb157 ]
46   %tmp26 = phi float [ 0.000000e+00, %bb ], [ %tmp349, %bb157 ]
47   %tmp27 = phi float [ 0.000000e+00, %bb ], [ %tmp348, %bb157 ]
48   %tmp28 = phi float [ 0.000000e+00, %bb ], [ %tmp351, %bb157 ]
49   %tmp29 = phi float [ 0.000000e+00, %bb ], [ %tmp347, %bb157 ]
50   %tmp30 = phi float [ 0.000000e+00, %bb ], [ %tmp346, %bb157 ]
51   %tmp31 = phi float [ 0.000000e+00, %bb ], [ %tmp345, %bb157 ]
52   %tmp32 = phi float [ 0.000000e+00, %bb ], [ %tmp352, %bb157 ]
53   %tmp33 = phi float [ 0.000000e+00, %bb ], [ %tmp344, %bb157 ]
54   %tmp34 = phi float [ 0.000000e+00, %bb ], [ %tmp343, %bb157 ]
55   %tmp35 = phi float [ 0.000000e+00, %bb ], [ %tmp342, %bb157 ]
56   %tmp36 = phi float [ 0.000000e+00, %bb ], [ %tmp353, %bb157 ]
57   %tmp37 = phi float [ 0.000000e+00, %bb ], [ %tmp341, %bb157 ]
58   %tmp38 = phi float [ 0.000000e+00, %bb ], [ %tmp340, %bb157 ]
59   %tmp39 = phi float [ 0.000000e+00, %bb ], [ %tmp339, %bb157 ]
60   %tmp40 = phi float [ 0.000000e+00, %bb ], [ %tmp354, %bb157 ]
61   %tmp41 = phi float [ 0.000000e+00, %bb ], [ %tmp338, %bb157 ]
62   %tmp42 = phi float [ 0.000000e+00, %bb ], [ %tmp337, %bb157 ]
63   %tmp43 = phi float [ 0.000000e+00, %bb ], [ %tmp336, %bb157 ]
64   %tmp44 = phi float [ 0.000000e+00, %bb ], [ %tmp355, %bb157 ]
65   %tmp45 = phi float [ 0.000000e+00, %bb ], [ %tmp335, %bb157 ]
66   %tmp46 = phi float [ 0.000000e+00, %bb ], [ %tmp334, %bb157 ]
67   %tmp47 = phi float [ 0.000000e+00, %bb ], [ %tmp333, %bb157 ]
68   %tmp48 = phi float [ 0.000000e+00, %bb ], [ %tmp356, %bb157 ]
69   %tmp49 = phi float [ 0.000000e+00, %bb ], [ %tmp332, %bb157 ]
70   %tmp50 = phi float [ 0.000000e+00, %bb ], [ %tmp331, %bb157 ]
71   %tmp51 = phi float [ 0.000000e+00, %bb ], [ %tmp330, %bb157 ]
72   %tmp52 = phi float [ 0.000000e+00, %bb ], [ %tmp357, %bb157 ]
73   %tmp53 = phi float [ 0.000000e+00, %bb ], [ %tmp329, %bb157 ]
74   %tmp54 = phi float [ 0.000000e+00, %bb ], [ %tmp328, %bb157 ]
75   %tmp55 = phi float [ 0.000000e+00, %bb ], [ %tmp327, %bb157 ]
76   %tmp56 = phi float [ 0.000000e+00, %bb ], [ %tmp358, %bb157 ]
77   %tmp57 = phi float [ 0.000000e+00, %bb ], [ %tmp326, %bb157 ]
78   %tmp58 = phi float [ 0.000000e+00, %bb ], [ %tmp325, %bb157 ]
79   %tmp59 = phi float [ 0.000000e+00, %bb ], [ %tmp324, %bb157 ]
80   %tmp60 = phi float [ 0.000000e+00, %bb ], [ %tmp359, %bb157 ]
81   %tmp61 = phi float [ 0.000000e+00, %bb ], [ %tmp323, %bb157 ]
82   %tmp62 = phi float [ 0.000000e+00, %bb ], [ %tmp322, %bb157 ]
83   %tmp63 = phi float [ 0.000000e+00, %bb ], [ %tmp321, %bb157 ]
84   %tmp64 = phi float [ 0.000000e+00, %bb ], [ %tmp360, %bb157 ]
85   %tmp65 = phi float [ 0.000000e+00, %bb ], [ %tmp320, %bb157 ]
86   %tmp66 = phi float [ 0.000000e+00, %bb ], [ %tmp319, %bb157 ]
87   %tmp67 = phi float [ 0.000000e+00, %bb ], [ %tmp318, %bb157 ]
88   %tmp68 = phi float [ 0.000000e+00, %bb ], [ %tmp361, %bb157 ]
89   %tmp69 = phi float [ 0.000000e+00, %bb ], [ %tmp317, %bb157 ]
90   %tmp70 = phi float [ 0.000000e+00, %bb ], [ %tmp316, %bb157 ]
91   %tmp71 = phi float [ 0.000000e+00, %bb ], [ %tmp315, %bb157 ]
92   %tmp72 = phi float [ 0.000000e+00, %bb ], [ %tmp362, %bb157 ]
93   %tmp73 = phi float [ 0.000000e+00, %bb ], [ %tmp314, %bb157 ]
94   %tmp74 = phi float [ 0.000000e+00, %bb ], [ %tmp313, %bb157 ]
95   %tmp75 = phi float [ 0.000000e+00, %bb ], [ %tmp312, %bb157 ]
96   %tmp76 = phi float [ 0.000000e+00, %bb ], [ %tmp363, %bb157 ]
97   %tmp77 = phi float [ 0.000000e+00, %bb ], [ %tmp311, %bb157 ]
98   %tmp78 = phi float [ 0.000000e+00, %bb ], [ %tmp310, %bb157 ]
99   %tmp79 = phi float [ 0.000000e+00, %bb ], [ %tmp309, %bb157 ]
100   %tmp80 = phi float [ 0.000000e+00, %bb ], [ %tmp364, %bb157 ]
101   %tmp81 = phi float [ 0.000000e+00, %bb ], [ %tmp308, %bb157 ]
102   %tmp82 = phi float [ 0.000000e+00, %bb ], [ %tmp307, %bb157 ]
103   %tmp83 = phi float [ 0.000000e+00, %bb ], [ %tmp306, %bb157 ]
104   %tmp84 = phi float [ 0.000000e+00, %bb ], [ %tmp365, %bb157 ]
105   %tmp85 = phi float [ 0.000000e+00, %bb ], [ %tmp305, %bb157 ]
106   %tmp86 = phi float [ 0.000000e+00, %bb ], [ %tmp304, %bb157 ]
107   %tmp87 = phi float [ 0.000000e+00, %bb ], [ %tmp303, %bb157 ]
108   %tmp88 = phi float [ 0.000000e+00, %bb ], [ %tmp366, %bb157 ]
109   %tmp89 = phi float [ 0.000000e+00, %bb ], [ %tmp302, %bb157 ]
110   %tmp90 = phi float [ 0.000000e+00, %bb ], [ %tmp301, %bb157 ]
111   %tmp91 = phi float [ 0.000000e+00, %bb ], [ %tmp300, %bb157 ]
112   %tmp92 = phi float [ 0.000000e+00, %bb ], [ %tmp367, %bb157 ]
113   %tmp93 = phi float [ 0.000000e+00, %bb ], [ %tmp299, %bb157 ]
114   %tmp94 = phi float [ 0.000000e+00, %bb ], [ %tmp298, %bb157 ]
115   %tmp95 = phi float [ 0.000000e+00, %bb ], [ %tmp297, %bb157 ]
116   %tmp96 = phi float [ 0.000000e+00, %bb ], [ %tmp368, %bb157 ]
117   %tmp97 = phi float [ 0.000000e+00, %bb ], [ %tmp296, %bb157 ]
118   %tmp98 = phi float [ 0.000000e+00, %bb ], [ %tmp295, %bb157 ]
119   %tmp99 = phi float [ 0.000000e+00, %bb ], [ %tmp294, %bb157 ]
120   %tmp100 = phi float [ 0.000000e+00, %bb ], [ %tmp369, %bb157 ]
121   %tmp101 = phi float [ 0.000000e+00, %bb ], [ %tmp293, %bb157 ]
122   %tmp102 = phi float [ 0.000000e+00, %bb ], [ %tmp292, %bb157 ]
123   %tmp103 = phi float [ 0.000000e+00, %bb ], [ %tmp291, %bb157 ]
124   %tmp104 = phi float [ 0.000000e+00, %bb ], [ %tmp370, %bb157 ]
125   %tmp105 = phi float [ 0.000000e+00, %bb ], [ %tmp371, %bb157 ]
126   %tmp106 = phi float [ 0.000000e+00, %bb ], [ %tmp372, %bb157 ]
127   %tmp107 = phi float [ 0.000000e+00, %bb ], [ %tmp421, %bb157 ]
128   %tmp108 = phi float [ 0.000000e+00, %bb ], [ %tmp373, %bb157 ]
129   %tmp109 = phi float [ 0.000000e+00, %bb ], [ %tmp374, %bb157 ]
130   %tmp110 = phi float [ 0.000000e+00, %bb ], [ %tmp375, %bb157 ]
131   %tmp111 = phi float [ 0.000000e+00, %bb ], [ %tmp376, %bb157 ]
132   %tmp112 = phi float [ 0.000000e+00, %bb ], [ %tmp377, %bb157 ]
133   %tmp113 = phi float [ 0.000000e+00, %bb ], [ %tmp378, %bb157 ]
134   %tmp114 = phi float [ 0.000000e+00, %bb ], [ %tmp379, %bb157 ]
135   %tmp115 = phi float [ 0.000000e+00, %bb ], [ %tmp380, %bb157 ]
136   %tmp116 = phi float [ 0.000000e+00, %bb ], [ %tmp381, %bb157 ]
137   %tmp117 = phi float [ 0.000000e+00, %bb ], [ %tmp382, %bb157 ]
138   %tmp118 = phi float [ 0.000000e+00, %bb ], [ %tmp383, %bb157 ]
139   %tmp119 = phi float [ 0.000000e+00, %bb ], [ %tmp384, %bb157 ]
140   %tmp120 = phi float [ 0.000000e+00, %bb ], [ %tmp385, %bb157 ]
141   %tmp121 = phi float [ 0.000000e+00, %bb ], [ %tmp386, %bb157 ]
142   %tmp122 = phi float [ 0.000000e+00, %bb ], [ %tmp387, %bb157 ]
143   %tmp123 = phi float [ 0.000000e+00, %bb ], [ %tmp388, %bb157 ]
144   %tmp124 = phi float [ 0.000000e+00, %bb ], [ %tmp389, %bb157 ]
145   %tmp125 = phi float [ 0.000000e+00, %bb ], [ %tmp390, %bb157 ]
146   %tmp126 = phi float [ 0.000000e+00, %bb ], [ %tmp391, %bb157 ]
147   %tmp127 = phi float [ 0.000000e+00, %bb ], [ %tmp392, %bb157 ]
148   %tmp128 = phi float [ 0.000000e+00, %bb ], [ %tmp393, %bb157 ]
149   %tmp129 = phi float [ 0.000000e+00, %bb ], [ %tmp394, %bb157 ]
150   %tmp130 = phi float [ 0.000000e+00, %bb ], [ %tmp395, %bb157 ]
151   %tmp131 = phi float [ 0.000000e+00, %bb ], [ %tmp396, %bb157 ]
152   %tmp132 = phi float [ 0.000000e+00, %bb ], [ %tmp397, %bb157 ]
153   %tmp133 = phi float [ 0.000000e+00, %bb ], [ %tmp398, %bb157 ]
154   %tmp134 = phi float [ 0.000000e+00, %bb ], [ %tmp399, %bb157 ]
155   %tmp135 = phi float [ 0.000000e+00, %bb ], [ %tmp400, %bb157 ]
156   %tmp136 = phi float [ 0.000000e+00, %bb ], [ %tmp401, %bb157 ]
157   %tmp137 = phi float [ 0.000000e+00, %bb ], [ %tmp402, %bb157 ]
158   %tmp138 = phi float [ 0.000000e+00, %bb ], [ %tmp403, %bb157 ]
159   %tmp139 = phi float [ 0.000000e+00, %bb ], [ %tmp404, %bb157 ]
160   %tmp140 = phi float [ 0.000000e+00, %bb ], [ %tmp405, %bb157 ]
161   %tmp141 = phi float [ 0.000000e+00, %bb ], [ %tmp406, %bb157 ]
162   %tmp142 = phi float [ 0.000000e+00, %bb ], [ %tmp407, %bb157 ]
163   %tmp143 = phi float [ 0.000000e+00, %bb ], [ %tmp408, %bb157 ]
164   %tmp144 = phi float [ 0.000000e+00, %bb ], [ %tmp409, %bb157 ]
165   %tmp145 = phi float [ 0.000000e+00, %bb ], [ %tmp410, %bb157 ]
166   %tmp146 = phi float [ 0.000000e+00, %bb ], [ %tmp411, %bb157 ]
167   %tmp147 = phi float [ 0.000000e+00, %bb ], [ %tmp412, %bb157 ]
168   %tmp148 = phi float [ 0.000000e+00, %bb ], [ %tmp413, %bb157 ]
169   %tmp149 = phi float [ 0.000000e+00, %bb ], [ %tmp414, %bb157 ]
170   %tmp150 = phi float [ 0.000000e+00, %bb ], [ %tmp415, %bb157 ]
171   %tmp151 = phi float [ 0.000000e+00, %bb ], [ %tmp416, %bb157 ]
172   %tmp152 = phi float [ 0.000000e+00, %bb ], [ %tmp417, %bb157 ]
173   %tmp153 = phi float [ 0.000000e+00, %bb ], [ %tmp418, %bb157 ]
174   %tmp154 = bitcast float %tmp107 to i32
175   %tmp155 = icmp sgt i32 %tmp154, 125
176   br i1 %tmp155, label %bb156, label %bb157
177
178 bb156:                                            ; preds = %bb24
179   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 32, i32 0, float %tmp12, float %tmp103, float %tmp102, float %tmp101)
180   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 33, i32 0, float %tmp99, float %tmp98, float %tmp97, float %tmp95)
181   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 34, i32 0, float %tmp94, float %tmp93, float %tmp91, float %tmp90)
182   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 35, i32 0, float %tmp89, float %tmp87, float %tmp86, float %tmp85)
183   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 36, i32 0, float %tmp83, float %tmp82, float %tmp81, float %tmp79)
184   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 37, i32 0, float %tmp78, float %tmp77, float %tmp75, float %tmp74)
185   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 38, i32 0, float %tmp73, float %tmp71, float %tmp70, float %tmp69)
186   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 39, i32 0, float %tmp67, float %tmp66, float %tmp65, float %tmp63)
187   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 40, i32 0, float %tmp62, float %tmp61, float %tmp59, float %tmp58)
188   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 41, i32 0, float %tmp57, float %tmp55, float %tmp54, float %tmp53)
189   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 42, i32 0, float %tmp51, float %tmp50, float %tmp49, float %tmp47)
190   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 43, i32 0, float %tmp46, float %tmp45, float %tmp43, float %tmp42)
191   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 44, i32 0, float %tmp41, float %tmp39, float %tmp38, float %tmp37)
192   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 45, i32 0, float %tmp35, float %tmp34, float %tmp33, float %tmp31)
193   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 46, i32 0, float %tmp30, float %tmp29, float %tmp27, float %tmp26)
194   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 47, i32 0, float %tmp25, float %tmp28, float %tmp32, float %tmp36)
195   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 48, i32 0, float %tmp40, float %tmp44, float %tmp48, float %tmp52)
196   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 49, i32 0, float %tmp56, float %tmp60, float %tmp64, float %tmp68)
197   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 50, i32 0, float %tmp72, float %tmp76, float %tmp80, float %tmp84)
198   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 51, i32 0, float %tmp88, float %tmp92, float %tmp96, float %tmp100)
199   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 52, i32 0, float %tmp104, float %tmp105, float %tmp106, float %tmp108)
200   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 53, i32 0, float %tmp109, float %tmp110, float %tmp111, float %tmp112)
201   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 54, i32 0, float %tmp113, float %tmp114, float %tmp115, float %tmp116)
202   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 55, i32 0, float %tmp117, float %tmp118, float %tmp119, float %tmp120)
203   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 56, i32 0, float %tmp121, float %tmp122, float %tmp123, float %tmp124)
204   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 57, i32 0, float %tmp125, float %tmp126, float %tmp127, float %tmp128)
205   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 58, i32 0, float %tmp129, float %tmp130, float %tmp131, float %tmp132)
206   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 59, i32 0, float %tmp133, float %tmp134, float %tmp135, float %tmp136)
207   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 60, i32 0, float %tmp137, float %tmp138, float %tmp139, float %tmp140)
208   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 61, i32 0, float %tmp141, float %tmp142, float %tmp143, float %tmp144)
209   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 62, i32 0, float %tmp145, float %tmp146, float %tmp147, float %tmp148)
210   call void @llvm.SI.export(i32 15, i32 0, i32 0, i32 63, i32 0, float %tmp149, float %tmp150, float %tmp151, float %tmp13)
211   call void @llvm.SI.export(i32 15, i32 0, i32 1, i32 12, i32 0, float %tmp19, float %tmp20, float %tmp21, float %tmp22)
212   ret void
213
214 bb157:                                            ; preds = %bb24
215   %tmp158 = bitcast float %tmp107 to i32
216   %tmp159 = bitcast float %tmp107 to i32
217   %tmp160 = add i32 %tmp23, %tmp159
218   %tmp161 = bitcast i32 %tmp160 to float
219   %tmp162 = insertelement <128 x float> undef, float %tmp103, i32 0
220   %tmp163 = insertelement <128 x float> %tmp162, float %tmp102, i32 1
221   %tmp164 = insertelement <128 x float> %tmp163, float %tmp101, i32 2
222   %tmp165 = insertelement <128 x float> %tmp164, float %tmp99, i32 3
223   %tmp166 = insertelement <128 x float> %tmp165, float %tmp98, i32 4
224   %tmp167 = insertelement <128 x float> %tmp166, float %tmp97, i32 5
225   %tmp168 = insertelement <128 x float> %tmp167, float %tmp95, i32 6
226   %tmp169 = insertelement <128 x float> %tmp168, float %tmp94, i32 7
227   %tmp170 = insertelement <128 x float> %tmp169, float %tmp93, i32 8
228   %tmp171 = insertelement <128 x float> %tmp170, float %tmp91, i32 9
229   %tmp172 = insertelement <128 x float> %tmp171, float %tmp90, i32 10
230   %tmp173 = insertelement <128 x float> %tmp172, float %tmp89, i32 11
231   %tmp174 = insertelement <128 x float> %tmp173, float %tmp87, i32 12
232   %tmp175 = insertelement <128 x float> %tmp174, float %tmp86, i32 13
233   %tmp176 = insertelement <128 x float> %tmp175, float %tmp85, i32 14
234   %tmp177 = insertelement <128 x float> %tmp176, float %tmp83, i32 15
235   %tmp178 = insertelement <128 x float> %tmp177, float %tmp82, i32 16
236   %tmp179 = insertelement <128 x float> %tmp178, float %tmp81, i32 17
237   %tmp180 = insertelement <128 x float> %tmp179, float %tmp79, i32 18
238   %tmp181 = insertelement <128 x float> %tmp180, float %tmp78, i32 19
239   %tmp182 = insertelement <128 x float> %tmp181, float %tmp77, i32 20
240   %tmp183 = insertelement <128 x float> %tmp182, float %tmp75, i32 21
241   %tmp184 = insertelement <128 x float> %tmp183, float %tmp74, i32 22
242   %tmp185 = insertelement <128 x float> %tmp184, float %tmp73, i32 23
243   %tmp186 = insertelement <128 x float> %tmp185, float %tmp71, i32 24
244   %tmp187 = insertelement <128 x float> %tmp186, float %tmp70, i32 25
245   %tmp188 = insertelement <128 x float> %tmp187, float %tmp69, i32 26
246   %tmp189 = insertelement <128 x float> %tmp188, float %tmp67, i32 27
247   %tmp190 = insertelement <128 x float> %tmp189, float %tmp66, i32 28
248   %tmp191 = insertelement <128 x float> %tmp190, float %tmp65, i32 29
249   %tmp192 = insertelement <128 x float> %tmp191, float %tmp63, i32 30
250   %tmp193 = insertelement <128 x float> %tmp192, float %tmp62, i32 31
251   %tmp194 = insertelement <128 x float> %tmp193, float %tmp61, i32 32
252   %tmp195 = insertelement <128 x float> %tmp194, float %tmp59, i32 33
253   %tmp196 = insertelement <128 x float> %tmp195, float %tmp58, i32 34
254   %tmp197 = insertelement <128 x float> %tmp196, float %tmp57, i32 35
255   %tmp198 = insertelement <128 x float> %tmp197, float %tmp55, i32 36
256   %tmp199 = insertelement <128 x float> %tmp198, float %tmp54, i32 37
257   %tmp200 = insertelement <128 x float> %tmp199, float %tmp53, i32 38
258   %tmp201 = insertelement <128 x float> %tmp200, float %tmp51, i32 39
259   %tmp202 = insertelement <128 x float> %tmp201, float %tmp50, i32 40
260   %tmp203 = insertelement <128 x float> %tmp202, float %tmp49, i32 41
261   %tmp204 = insertelement <128 x float> %tmp203, float %tmp47, i32 42
262   %tmp205 = insertelement <128 x float> %tmp204, float %tmp46, i32 43
263   %tmp206 = insertelement <128 x float> %tmp205, float %tmp45, i32 44
264   %tmp207 = insertelement <128 x float> %tmp206, float %tmp43, i32 45
265   %tmp208 = insertelement <128 x float> %tmp207, float %tmp42, i32 46
266   %tmp209 = insertelement <128 x float> %tmp208, float %tmp41, i32 47
267   %tmp210 = insertelement <128 x float> %tmp209, float %tmp39, i32 48
268   %tmp211 = insertelement <128 x float> %tmp210, float %tmp38, i32 49
269   %tmp212 = insertelement <128 x float> %tmp211, float %tmp37, i32 50
270   %tmp213 = insertelement <128 x float> %tmp212, float %tmp35, i32 51
271   %tmp214 = insertelement <128 x float> %tmp213, float %tmp34, i32 52
272   %tmp215 = insertelement <128 x float> %tmp214, float %tmp33, i32 53
273   %tmp216 = insertelement <128 x float> %tmp215, float %tmp31, i32 54
274   %tmp217 = insertelement <128 x float> %tmp216, float %tmp30, i32 55
275   %tmp218 = insertelement <128 x float> %tmp217, float %tmp29, i32 56
276   %tmp219 = insertelement <128 x float> %tmp218, float %tmp27, i32 57
277   %tmp220 = insertelement <128 x float> %tmp219, float %tmp26, i32 58
278   %tmp221 = insertelement <128 x float> %tmp220, float %tmp25, i32 59
279   %tmp222 = insertelement <128 x float> %tmp221, float %tmp28, i32 60
280   %tmp223 = insertelement <128 x float> %tmp222, float %tmp32, i32 61
281   %tmp224 = insertelement <128 x float> %tmp223, float %tmp36, i32 62
282   %tmp225 = insertelement <128 x float> %tmp224, float %tmp40, i32 63
283   %tmp226 = insertelement <128 x float> %tmp225, float %tmp44, i32 64
284   %tmp227 = insertelement <128 x float> %tmp226, float %tmp48, i32 65
285   %tmp228 = insertelement <128 x float> %tmp227, float %tmp52, i32 66
286   %tmp229 = insertelement <128 x float> %tmp228, float %tmp56, i32 67
287   %tmp230 = insertelement <128 x float> %tmp229, float %tmp60, i32 68
288   %tmp231 = insertelement <128 x float> %tmp230, float %tmp64, i32 69
289   %tmp232 = insertelement <128 x float> %tmp231, float %tmp68, i32 70
290   %tmp233 = insertelement <128 x float> %tmp232, float %tmp72, i32 71
291   %tmp234 = insertelement <128 x float> %tmp233, float %tmp76, i32 72
292   %tmp235 = insertelement <128 x float> %tmp234, float %tmp80, i32 73
293   %tmp236 = insertelement <128 x float> %tmp235, float %tmp84, i32 74
294   %tmp237 = insertelement <128 x float> %tmp236, float %tmp88, i32 75
295   %tmp238 = insertelement <128 x float> %tmp237, float %tmp92, i32 76
296   %tmp239 = insertelement <128 x float> %tmp238, float %tmp96, i32 77
297   %tmp240 = insertelement <128 x float> %tmp239, float %tmp100, i32 78
298   %tmp241 = insertelement <128 x float> %tmp240, float %tmp104, i32 79
299   %tmp242 = insertelement <128 x float> %tmp241, float %tmp105, i32 80
300   %tmp243 = insertelement <128 x float> %tmp242, float %tmp106, i32 81
301   %tmp244 = insertelement <128 x float> %tmp243, float %tmp108, i32 82
302   %tmp245 = insertelement <128 x float> %tmp244, float %tmp109, i32 83
303   %tmp246 = insertelement <128 x float> %tmp245, float %tmp110, i32 84
304   %tmp247 = insertelement <128 x float> %tmp246, float %tmp111, i32 85
305   %tmp248 = insertelement <128 x float> %tmp247, float %tmp112, i32 86
306   %tmp249 = insertelement <128 x float> %tmp248, float %tmp113, i32 87
307   %tmp250 = insertelement <128 x float> %tmp249, float %tmp114, i32 88
308   %tmp251 = insertelement <128 x float> %tmp250, float %tmp115, i32 89
309   %tmp252 = insertelement <128 x float> %tmp251, float %tmp116, i32 90
310   %tmp253 = insertelement <128 x float> %tmp252, float %tmp117, i32 91
311   %tmp254 = insertelement <128 x float> %tmp253, float %tmp118, i32 92
312   %tmp255 = insertelement <128 x float> %tmp254, float %tmp119, i32 93
313   %tmp256 = insertelement <128 x float> %tmp255, float %tmp120, i32 94
314   %tmp257 = insertelement <128 x float> %tmp256, float %tmp121, i32 95
315   %tmp258 = insertelement <128 x float> %tmp257, float %tmp122, i32 96
316   %tmp259 = insertelement <128 x float> %tmp258, float %tmp123, i32 97
317   %tmp260 = insertelement <128 x float> %tmp259, float %tmp124, i32 98
318   %tmp261 = insertelement <128 x float> %tmp260, float %tmp125, i32 99
319   %tmp262 = insertelement <128 x float> %tmp261, float %tmp126, i32 100
320   %tmp263 = insertelement <128 x float> %tmp262, float %tmp127, i32 101
321   %tmp264 = insertelement <128 x float> %tmp263, float %tmp128, i32 102
322   %tmp265 = insertelement <128 x float> %tmp264, float %tmp129, i32 103
323   %tmp266 = insertelement <128 x float> %tmp265, float %tmp130, i32 104
324   %tmp267 = insertelement <128 x float> %tmp266, float %tmp131, i32 105
325   %tmp268 = insertelement <128 x float> %tmp267, float %tmp132, i32 106
326   %tmp269 = insertelement <128 x float> %tmp268, float %tmp133, i32 107
327   %tmp270 = insertelement <128 x float> %tmp269, float %tmp134, i32 108
328   %tmp271 = insertelement <128 x float> %tmp270, float %tmp135, i32 109
329   %tmp272 = insertelement <128 x float> %tmp271, float %tmp136, i32 110
330   %tmp273 = insertelement <128 x float> %tmp272, float %tmp137, i32 111
331   %tmp274 = insertelement <128 x float> %tmp273, float %tmp138, i32 112
332   %tmp275 = insertelement <128 x float> %tmp274, float %tmp139, i32 113
333   %tmp276 = insertelement <128 x float> %tmp275, float %tmp140, i32 114
334   %tmp277 = insertelement <128 x float> %tmp276, float %tmp141, i32 115
335   %tmp278 = insertelement <128 x float> %tmp277, float %tmp142, i32 116
336   %tmp279 = insertelement <128 x float> %tmp278, float %tmp143, i32 117
337   %tmp280 = insertelement <128 x float> %tmp279, float %tmp144, i32 118
338   %tmp281 = insertelement <128 x float> %tmp280, float %tmp145, i32 119
339   %tmp282 = insertelement <128 x float> %tmp281, float %tmp146, i32 120
340   %tmp283 = insertelement <128 x float> %tmp282, float %tmp147, i32 121
341   %tmp284 = insertelement <128 x float> %tmp283, float %tmp148, i32 122
342   %tmp285 = insertelement <128 x float> %tmp284, float %tmp149, i32 123
343   %tmp286 = insertelement <128 x float> %tmp285, float %tmp150, i32 124
344   %tmp287 = insertelement <128 x float> %tmp286, float %tmp151, i32 125
345   %tmp288 = insertelement <128 x float> %tmp287, float %tmp152, i32 126
346   %tmp289 = insertelement <128 x float> %tmp288, float %tmp153, i32 127
347   %tmp290 = insertelement <128 x float> %tmp289, float %tmp161, i32 %tmp158
348   %tmp291 = extractelement <128 x float> %tmp290, i32 0
349   %tmp292 = extractelement <128 x float> %tmp290, i32 1
350   %tmp293 = extractelement <128 x float> %tmp290, i32 2
351   %tmp294 = extractelement <128 x float> %tmp290, i32 3
352   %tmp295 = extractelement <128 x float> %tmp290, i32 4
353   %tmp296 = extractelement <128 x float> %tmp290, i32 5
354   %tmp297 = extractelement <128 x float> %tmp290, i32 6
355   %tmp298 = extractelement <128 x float> %tmp290, i32 7
356   %tmp299 = extractelement <128 x float> %tmp290, i32 8
357   %tmp300 = extractelement <128 x float> %tmp290, i32 9
358   %tmp301 = extractelement <128 x float> %tmp290, i32 10
359   %tmp302 = extractelement <128 x float> %tmp290, i32 11
360   %tmp303 = extractelement <128 x float> %tmp290, i32 12
361   %tmp304 = extractelement <128 x float> %tmp290, i32 13
362   %tmp305 = extractelement <128 x float> %tmp290, i32 14
363   %tmp306 = extractelement <128 x float> %tmp290, i32 15
364   %tmp307 = extractelement <128 x float> %tmp290, i32 16
365   %tmp308 = extractelement <128 x float> %tmp290, i32 17
366   %tmp309 = extractelement <128 x float> %tmp290, i32 18
367   %tmp310 = extractelement <128 x float> %tmp290, i32 19
368   %tmp311 = extractelement <128 x float> %tmp290, i32 20
369   %tmp312 = extractelement <128 x float> %tmp290, i32 21
370   %tmp313 = extractelement <128 x float> %tmp290, i32 22
371   %tmp314 = extractelement <128 x float> %tmp290, i32 23
372   %tmp315 = extractelement <128 x float> %tmp290, i32 24
373   %tmp316 = extractelement <128 x float> %tmp290, i32 25
374   %tmp317 = extractelement <128 x float> %tmp290, i32 26
375   %tmp318 = extractelement <128 x float> %tmp290, i32 27
376   %tmp319 = extractelement <128 x float> %tmp290, i32 28
377   %tmp320 = extractelement <128 x float> %tmp290, i32 29
378   %tmp321 = extractelement <128 x float> %tmp290, i32 30
379   %tmp322 = extractelement <128 x float> %tmp290, i32 31
380   %tmp323 = extractelement <128 x float> %tmp290, i32 32
381   %tmp324 = extractelement <128 x float> %tmp290, i32 33
382   %tmp325 = extractelement <128 x float> %tmp290, i32 34
383   %tmp326 = extractelement <128 x float> %tmp290, i32 35
384   %tmp327 = extractelement <128 x float> %tmp290, i32 36
385   %tmp328 = extractelement <128 x float> %tmp290, i32 37
386   %tmp329 = extractelement <128 x float> %tmp290, i32 38
387   %tmp330 = extractelement <128 x float> %tmp290, i32 39
388   %tmp331 = extractelement <128 x float> %tmp290, i32 40
389   %tmp332 = extractelement <128 x float> %tmp290, i32 41
390   %tmp333 = extractelement <128 x float> %tmp290, i32 42
391   %tmp334 = extractelement <128 x float> %tmp290, i32 43
392   %tmp335 = extractelement <128 x float> %tmp290, i32 44
393   %tmp336 = extractelement <128 x float> %tmp290, i32 45
394   %tmp337 = extractelement <128 x float> %tmp290, i32 46
395   %tmp338 = extractelement <128 x float> %tmp290, i32 47
396   %tmp339 = extractelement <128 x float> %tmp290, i32 48
397   %tmp340 = extractelement <128 x float> %tmp290, i32 49
398   %tmp341 = extractelement <128 x float> %tmp290, i32 50
399   %tmp342 = extractelement <128 x float> %tmp290, i32 51
400   %tmp343 = extractelement <128 x float> %tmp290, i32 52
401   %tmp344 = extractelement <128 x float> %tmp290, i32 53
402   %tmp345 = extractelement <128 x float> %tmp290, i32 54
403   %tmp346 = extractelement <128 x float> %tmp290, i32 55
404   %tmp347 = extractelement <128 x float> %tmp290, i32 56
405   %tmp348 = extractelement <128 x float> %tmp290, i32 57
406   %tmp349 = extractelement <128 x float> %tmp290, i32 58
407   %tmp350 = extractelement <128 x float> %tmp290, i32 59
408   %tmp351 = extractelement <128 x float> %tmp290, i32 60
409   %tmp352 = extractelement <128 x float> %tmp290, i32 61
410   %tmp353 = extractelement <128 x float> %tmp290, i32 62
411   %tmp354 = extractelement <128 x float> %tmp290, i32 63
412   %tmp355 = extractelement <128 x float> %tmp290, i32 64
413   %tmp356 = extractelement <128 x float> %tmp290, i32 65
414   %tmp357 = extractelement <128 x float> %tmp290, i32 66
415   %tmp358 = extractelement <128 x float> %tmp290, i32 67
416   %tmp359 = extractelement <128 x float> %tmp290, i32 68
417   %tmp360 = extractelement <128 x float> %tmp290, i32 69
418   %tmp361 = extractelement <128 x float> %tmp290, i32 70
419   %tmp362 = extractelement <128 x float> %tmp290, i32 71
420   %tmp363 = extractelement <128 x float> %tmp290, i32 72
421   %tmp364 = extractelement <128 x float> %tmp290, i32 73
422   %tmp365 = extractelement <128 x float> %tmp290, i32 74
423   %tmp366 = extractelement <128 x float> %tmp290, i32 75
424   %tmp367 = extractelement <128 x float> %tmp290, i32 76
425   %tmp368 = extractelement <128 x float> %tmp290, i32 77
426   %tmp369 = extractelement <128 x float> %tmp290, i32 78
427   %tmp370 = extractelement <128 x float> %tmp290, i32 79
428   %tmp371 = extractelement <128 x float> %tmp290, i32 80
429   %tmp372 = extractelement <128 x float> %tmp290, i32 81
430   %tmp373 = extractelement <128 x float> %tmp290, i32 82
431   %tmp374 = extractelement <128 x float> %tmp290, i32 83
432   %tmp375 = extractelement <128 x float> %tmp290, i32 84
433   %tmp376 = extractelement <128 x float> %tmp290, i32 85
434   %tmp377 = extractelement <128 x float> %tmp290, i32 86
435   %tmp378 = extractelement <128 x float> %tmp290, i32 87
436   %tmp379 = extractelement <128 x float> %tmp290, i32 88
437   %tmp380 = extractelement <128 x float> %tmp290, i32 89
438   %tmp381 = extractelement <128 x float> %tmp290, i32 90
439   %tmp382 = extractelement <128 x float> %tmp290, i32 91
440   %tmp383 = extractelement <128 x float> %tmp290, i32 92
441   %tmp384 = extractelement <128 x float> %tmp290, i32 93
442   %tmp385 = extractelement <128 x float> %tmp290, i32 94
443   %tmp386 = extractelement <128 x float> %tmp290, i32 95
444   %tmp387 = extractelement <128 x float> %tmp290, i32 96
445   %tmp388 = extractelement <128 x float> %tmp290, i32 97
446   %tmp389 = extractelement <128 x float> %tmp290, i32 98
447   %tmp390 = extractelement <128 x float> %tmp290, i32 99
448   %tmp391 = extractelement <128 x float> %tmp290, i32 100
449   %tmp392 = extractelement <128 x float> %tmp290, i32 101
450   %tmp393 = extractelement <128 x float> %tmp290, i32 102
451   %tmp394 = extractelement <128 x float> %tmp290, i32 103
452   %tmp395 = extractelement <128 x float> %tmp290, i32 104
453   %tmp396 = extractelement <128 x float> %tmp290, i32 105
454   %tmp397 = extractelement <128 x float> %tmp290, i32 106
455   %tmp398 = extractelement <128 x float> %tmp290, i32 107
456   %tmp399 = extractelement <128 x float> %tmp290, i32 108
457   %tmp400 = extractelement <128 x float> %tmp290, i32 109
458   %tmp401 = extractelement <128 x float> %tmp290, i32 110
459   %tmp402 = extractelement <128 x float> %tmp290, i32 111
460   %tmp403 = extractelement <128 x float> %tmp290, i32 112
461   %tmp404 = extractelement <128 x float> %tmp290, i32 113
462   %tmp405 = extractelement <128 x float> %tmp290, i32 114
463   %tmp406 = extractelement <128 x float> %tmp290, i32 115
464   %tmp407 = extractelement <128 x float> %tmp290, i32 116
465   %tmp408 = extractelement <128 x float> %tmp290, i32 117
466   %tmp409 = extractelement <128 x float> %tmp290, i32 118
467   %tmp410 = extractelement <128 x float> %tmp290, i32 119
468   %tmp411 = extractelement <128 x float> %tmp290, i32 120
469   %tmp412 = extractelement <128 x float> %tmp290, i32 121
470   %tmp413 = extractelement <128 x float> %tmp290, i32 122
471   %tmp414 = extractelement <128 x float> %tmp290, i32 123
472   %tmp415 = extractelement <128 x float> %tmp290, i32 124
473   %tmp416 = extractelement <128 x float> %tmp290, i32 125
474   %tmp417 = extractelement <128 x float> %tmp290, i32 126
475   %tmp418 = extractelement <128 x float> %tmp290, i32 127
476   %tmp419 = bitcast float %tmp107 to i32
477   %tmp420 = add i32 %tmp419, 1
478   %tmp421 = bitcast i32 %tmp420 to float
479   br label %bb24
480 }
481
482 ; Function Attrs: nounwind readnone
483 declare float @llvm.SI.load.const(<16 x i8>, i32) #1
484
485 ; Function Attrs: nounwind readnone
486 declare <4 x float> @llvm.SI.vs.load.input(<16 x i8>, i32, i32) #1
487
488 declare void @llvm.SI.export(i32, i32, i32, i32, i32, float, float, float, float)
489
490 attributes #0 = { "ShaderType"="1" "enable-no-nans-fp-math"="true" }
491 attributes #1 = { nounwind readnone }
492
493 !0 = !{!1, !1, i64 0, i32 1}
494 !1 = !{!"const", null}