1; RUN: llc -mtriple=amdgcn < %s -verify-machineinstrs | FileCheck -check-prefix=SI %s 2; RUN: llc -mtriple=amdgcn -mcpu=tonga < %s -verify-machineinstrs | FileCheck -check-prefix=SI %s 3 4; If this occurs it is likely due to reordering and the restore was 5; originally supposed to happen before SI_END_CF. 6 7; SI: s_or_b64 exec, exec, [[SAVED:s\[[0-9]+:[0-9]+\]|[a-z]+]] 8; SI-NOT: v_readlane_b32 [[SAVED]] 9 10define amdgpu_ps void @main() #0 { 11main_body: 12 %tmp = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 16, i32 0) 13 %tmp1 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 32, i32 0) 14 %tmp2 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 80, i32 0) 15 %tmp3 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 84, i32 0) 16 %tmp4 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 88, i32 0) 17 %tmp5 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 96, i32 0) 18 %tmp6 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 100, i32 0) 19 %tmp7 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 104, i32 0) 20 %tmp8 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 112, i32 0) 21 %tmp9 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 116, i32 0) 22 %tmp10 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 120, i32 0) 23 %tmp11 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 128, i32 0) 24 %tmp12 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 132, i32 0) 25 %tmp13 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 136, i32 0) 26 %tmp14 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 144, i32 0) 27 %tmp15 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 148, i32 0) 28 %tmp16 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 152, i32 0) 29 %tmp17 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 160, i32 0) 30 %tmp18 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 164, i32 0) 31 %tmp19 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 168, i32 0) 32 %tmp20 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 176, i32 0) 33 %tmp21 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 180, i32 0) 34 %tmp22 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 184, i32 0) 35 %tmp23 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 192, i32 0) 36 %tmp24 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 196, i32 0) 37 %tmp25 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 200, i32 0) 38 %tmp26 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 208, i32 0) 39 %tmp27 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 212, i32 0) 40 %tmp28 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 216, i32 0) 41 %tmp29 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 224, i32 0) 42 %tmp30 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 228, i32 0) 43 %tmp31 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 232, i32 0) 44 %tmp32 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 240, i32 0) 45 %tmp33 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 244, i32 0) 46 %tmp34 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 248, i32 0) 47 %tmp35 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 256, i32 0) 48 %tmp36 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 260, i32 0) 49 %tmp37 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 264, i32 0) 50 %tmp38 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 272, i32 0) 51 %tmp39 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 276, i32 0) 52 %tmp40 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 280, i32 0) 53 %tmp41 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 288, i32 0) 54 %tmp42 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 292, i32 0) 55 %tmp43 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 296, i32 0) 56 %tmp44 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 304, i32 0) 57 %tmp45 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 308, i32 0) 58 %tmp46 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 312, i32 0) 59 %tmp47 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 320, i32 0) 60 %tmp48 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 324, i32 0) 61 %tmp49 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 328, i32 0) 62 %tmp50 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 336, i32 0) 63 %tmp51 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 340, i32 0) 64 %tmp52 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 344, i32 0) 65 %tmp53 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 352, i32 0) 66 %tmp54 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 356, i32 0) 67 %tmp55 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 360, i32 0) 68 %tmp56 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 368, i32 0) 69 %tmp57 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 372, i32 0) 70 %tmp58 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 376, i32 0) 71 %tmp59 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 384, i32 0) 72 %tmp60 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 388, i32 0) 73 %tmp61 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 392, i32 0) 74 %tmp62 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 400, i32 0) 75 %tmp63 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 404, i32 0) 76 %tmp64 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 408, i32 0) 77 %tmp65 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 416, i32 0) 78 %tmp66 = call float @llvm.amdgcn.s.buffer.load.f32(<4 x i32> undef, i32 420, i32 0) 79 br label %LOOP 80 81LOOP: ; preds = %ENDIF2795, %main_body 82 %temp894.0 = phi float [ 0.000000e+00, %main_body ], [ %temp894.1, %ENDIF2795 ] 83 %temp18.0 = phi float [ undef, %main_body ], [ %temp18.1, %ENDIF2795 ] 84 %tid = call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) 85 %tmp67 = icmp sgt i32 %tid, 4 86 br i1 %tmp67, label %ENDLOOP, label %ENDIF 87 88ENDLOOP: ; preds = %ELSE2566, %LOOP 89 %one.sub.a.i = fsub float 1.000000e+00, %tmp 90 %one.sub.ac.i = fmul float %one.sub.a.i, undef 91 %fmul = fmul float undef, undef 92 %result.i = fadd float %fmul, %one.sub.ac.i 93 call void @llvm.amdgcn.exp.f32(i32 0, i32 15, float undef, float %result.i, float undef, float 1.000000e+00, i1 true, i1 true) #0 94 ret void 95 96ENDIF: ; preds = %LOOP 97 %tmp68 = fsub float %tmp2, undef 98 %tmp69 = fsub float %tmp3, undef 99 %tmp70 = fsub float %tmp4, undef 100 %tmp71 = fmul float %tmp68, 0.000000e+00 101 %tmp72 = fmul float %tmp69, undef 102 %tmp73 = fmul float %tmp70, undef 103 %tmp74 = fsub float %tmp6, undef 104 %tmp75 = fsub float %tmp7, undef 105 %tmp76 = fmul float %tmp74, undef 106 %tmp77 = fmul float %tmp75, 0.000000e+00 107 %tmp78 = call float @llvm.minnum.f32(float %tmp73, float %tmp77) 108 %tmp79 = call float @llvm.maxnum.f32(float %tmp71, float 0.000000e+00) 109 %tmp80 = call float @llvm.maxnum.f32(float %tmp72, float %tmp76) 110 %tmp81 = call float @llvm.maxnum.f32(float undef, float %tmp78) 111 %tmp82 = call float @llvm.minnum.f32(float %tmp79, float %tmp80) 112 %tmp83 = call float @llvm.minnum.f32(float %tmp82, float undef) 113 %tmp84 = fsub float %tmp14, undef 114 %tmp85 = fsub float %tmp15, undef 115 %tmp86 = fsub float %tmp16, undef 116 %tmp87 = fmul float %tmp84, undef 117 %tmp88 = fmul float %tmp85, undef 118 %tmp89 = fmul float %tmp86, undef 119 %tmp90 = fsub float %tmp17, undef 120 %tmp91 = fsub float %tmp18, undef 121 %tmp92 = fsub float %tmp19, undef 122 %tmp93 = fmul float %tmp90, 0.000000e+00 123 %tmp94 = fmul float %tmp91, undef 124 %tmp95 = fmul float %tmp92, undef 125 %tmp96 = call float @llvm.minnum.f32(float %tmp88, float %tmp94) 126 %tmp97 = call float @llvm.maxnum.f32(float %tmp87, float %tmp93) 127 %tmp98 = call float @llvm.maxnum.f32(float %tmp89, float %tmp95) 128 %tmp99 = call float @llvm.maxnum.f32(float undef, float %tmp96) 129 %tmp100 = call float @llvm.maxnum.f32(float %tmp99, float undef) 130 %tmp101 = call float @llvm.minnum.f32(float %tmp97, float undef) 131 %tmp102 = call float @llvm.minnum.f32(float %tmp101, float %tmp98) 132 %tmp103 = fsub float %tmp30, undef 133 %tmp104 = fsub float %tmp31, undef 134 %tmp105 = fmul float %tmp103, 0.000000e+00 135 %tmp106 = fmul float %tmp104, 0.000000e+00 136 %tmp107 = call float @llvm.minnum.f32(float undef, float %tmp105) 137 %tmp108 = call float @llvm.maxnum.f32(float undef, float %tmp106) 138 %tmp109 = call float @llvm.maxnum.f32(float undef, float %tmp107) 139 %tmp110 = call float @llvm.maxnum.f32(float %tmp109, float undef) 140 %tmp111 = call float @llvm.minnum.f32(float undef, float %tmp108) 141 %tmp112 = fsub float %tmp32, undef 142 %tmp113 = fsub float %tmp33, undef 143 %tmp114 = fsub float %tmp34, undef 144 %tmp115 = fmul float %tmp112, 0.000000e+00 145 %tmp116 = fmul float %tmp113, undef 146 %tmp117 = fmul float %tmp114, undef 147 %tmp118 = fsub float %tmp35, undef 148 %tmp119 = fsub float %tmp36, undef 149 %tmp120 = fsub float %tmp37, undef 150 %tmp121 = fmul float %tmp118, undef 151 %tmp122 = fmul float %tmp119, undef 152 %tmp123 = fmul float %tmp120, undef 153 %tmp124 = call float @llvm.minnum.f32(float %tmp115, float %tmp121) 154 %tmp125 = call float @llvm.minnum.f32(float %tmp116, float %tmp122) 155 %tmp126 = call float @llvm.minnum.f32(float %tmp117, float %tmp123) 156 %tmp127 = call float @llvm.maxnum.f32(float %tmp124, float %tmp125) 157 %tmp128 = call float @llvm.maxnum.f32(float %tmp127, float %tmp126) 158 %tmp129 = fsub float %tmp38, undef 159 %tmp130 = fsub float %tmp39, undef 160 %tmp131 = fsub float %tmp40, undef 161 %tmp132 = fmul float %tmp129, 0.000000e+00 162 %tmp133 = fmul float %tmp130, undef 163 %tmp134 = fmul float %tmp131, undef 164 %tmp135 = fsub float %tmp41, undef 165 %tmp136 = fsub float %tmp42, undef 166 %tmp137 = fsub float %tmp43, undef 167 %tmp138 = fmul float %tmp135, undef 168 %tmp139 = fmul float %tmp136, undef 169 %tmp140 = fmul float %tmp137, undef 170 %tmp141 = call float @llvm.minnum.f32(float %tmp132, float %tmp138) 171 %tmp142 = call float @llvm.minnum.f32(float %tmp133, float %tmp139) 172 %tmp143 = call float @llvm.minnum.f32(float %tmp134, float %tmp140) 173 %tmp144 = call float @llvm.maxnum.f32(float %tmp141, float %tmp142) 174 %tmp145 = call float @llvm.maxnum.f32(float %tmp144, float %tmp143) 175 %tmp146 = fsub float %tmp44, undef 176 %tmp147 = fsub float %tmp45, undef 177 %tmp148 = fsub float %tmp46, undef 178 %tmp149 = fmul float %tmp146, 0.000000e+00 179 %tmp150 = fmul float %tmp147, 0.000000e+00 180 %tmp151 = fmul float %tmp148, undef 181 %tmp152 = fsub float %tmp47, undef 182 %tmp153 = fsub float %tmp48, undef 183 %tmp154 = fsub float %tmp49, undef 184 %tmp155 = fmul float %tmp152, undef 185 %tmp156 = fmul float %tmp153, 0.000000e+00 186 %tmp157 = fmul float %tmp154, undef 187 %tmp158 = call float @llvm.minnum.f32(float %tmp149, float %tmp155) 188 %tmp159 = call float @llvm.minnum.f32(float %tmp150, float %tmp156) 189 %tmp160 = call float @llvm.minnum.f32(float %tmp151, float %tmp157) 190 %tmp161 = call float @llvm.maxnum.f32(float %tmp158, float %tmp159) 191 %tmp162 = call float @llvm.maxnum.f32(float %tmp161, float %tmp160) 192 %tmp163 = fsub float %tmp50, undef 193 %tmp164 = fsub float %tmp51, undef 194 %tmp165 = fsub float %tmp52, undef 195 %tmp166 = fmul float %tmp163, undef 196 %tmp167 = fmul float %tmp164, 0.000000e+00 197 %tmp168 = fmul float %tmp165, 0.000000e+00 198 %tmp169 = fsub float %tmp53, undef 199 %tmp170 = fsub float %tmp54, undef 200 %tmp171 = fsub float %tmp55, undef 201 %tmp172 = fdiv float 1.000000e+00, %temp18.0 202 %tmp173 = fmul float %tmp169, undef 203 %tmp174 = fmul float %tmp170, undef 204 %tmp175 = fmul float %tmp171, %tmp172 205 %tmp176 = call float @llvm.minnum.f32(float %tmp166, float %tmp173) 206 %tmp177 = call float @llvm.minnum.f32(float %tmp167, float %tmp174) 207 %tmp178 = call float @llvm.minnum.f32(float %tmp168, float %tmp175) 208 %tmp179 = call float @llvm.maxnum.f32(float %tmp176, float %tmp177) 209 %tmp180 = call float @llvm.maxnum.f32(float %tmp179, float %tmp178) 210 %tmp181 = fsub float %tmp62, undef 211 %tmp182 = fsub float %tmp63, undef 212 %tmp183 = fsub float %tmp64, undef 213 %tmp184 = fmul float %tmp181, 0.000000e+00 214 %tmp185 = fmul float %tmp182, undef 215 %tmp186 = fmul float %tmp183, undef 216 %tmp187 = fsub float %tmp65, undef 217 %tmp188 = fsub float %tmp66, undef 218 %tmp189 = fmul float %tmp187, undef 219 %tmp190 = fmul float %tmp188, undef 220 %tmp191 = call float @llvm.maxnum.f32(float %tmp184, float %tmp189) 221 %tmp192 = call float @llvm.maxnum.f32(float %tmp185, float %tmp190) 222 %tmp193 = call float @llvm.maxnum.f32(float %tmp186, float undef) 223 %tmp194 = call float @llvm.minnum.f32(float %tmp191, float %tmp192) 224 %tmp195 = call float @llvm.minnum.f32(float %tmp194, float %tmp193) 225 %.temp292.7 = select i1 undef, float %tmp162, float undef 226 %temp292.9 = select i1 false, float %tmp180, float %.temp292.7 227 %.temp292.9 = select i1 undef, float undef, float %temp292.9 228 %tmp196 = fcmp ogt float undef, 0.000000e+00 229 %tmp197 = fcmp olt float undef, %tmp195 230 %tmp198 = and i1 %tmp196, %tmp197 231 %tmp199 = fcmp olt float undef, %.temp292.9 232 %tmp200 = and i1 %tmp198, %tmp199 233 %temp292.11 = select i1 %tmp200, float undef, float %.temp292.9 234 %tid0 = call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) 235 %cmp0 = icmp eq i32 %tid0, 0 236 br i1 %cmp0, label %IF2565, label %ELSE2566 237 238IF2565: ; preds = %ENDIF 239 %tid1 = call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) 240 %cmp1 = icmp eq i32 %tid1, 0 241 br i1 %cmp1, label %ENDIF2582, label %ELSE2584 242 243ELSE2566: ; preds = %ENDIF 244 %tid2 = call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) 245 %tidf = bitcast i32 %tid2 to float 246 %tmp201 = fcmp oeq float %temp292.11, %tidf 247 br i1 %tmp201, label %ENDLOOP, label %ELSE2593 248 249ENDIF2564: ; preds = %ENDIF2594, %ENDIF2588 250 %temp894.1 = phi float [ undef, %ENDIF2588 ], [ %temp894.2, %ENDIF2594 ] 251 %temp18.1 = phi float [ %tmp218, %ENDIF2588 ], [ undef, %ENDIF2594 ] 252 %tmp202 = fsub float %tmp5, undef 253 %tmp203 = fmul float %tmp202, undef 254 %tmp204 = call float @llvm.maxnum.f32(float undef, float %tmp203) 255 %tmp205 = call float @llvm.minnum.f32(float %tmp204, float undef) 256 %tmp206 = call float @llvm.minnum.f32(float %tmp205, float undef) 257 %tmp207 = fcmp ogt float undef, 0.000000e+00 258 %tmp208 = fcmp olt float undef, 1.000000e+00 259 %tmp209 = and i1 %tmp207, %tmp208 260 %tid3 = call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) 261 %tidf3 = bitcast i32 %tid3 to float 262 %tmp210 = fcmp olt float %tidf3, %tmp206 263 %tmp211 = and i1 %tmp209, %tmp210 264 br i1 %tmp211, label %ENDIF2795, label %ELSE2797 265 266ELSE2584: ; preds = %IF2565 267 br label %ENDIF2582 268 269ENDIF2582: ; preds = %ELSE2584, %IF2565 270 %tmp212 = fadd float %tmp1, undef 271 %tmp213 = fadd float 0.000000e+00, %tmp212 272 %floor = call float @llvm.floor.f32(float %tmp213) 273 %tmp214 = fsub float %tmp213, %floor 274 %tid4 = call i32 @llvm.amdgcn.mbcnt.lo(i32 -1, i32 0) 275 %cmp4 = icmp eq i32 %tid4, 0 276 br i1 %cmp4, label %IF2589, label %ELSE2590 277 278IF2589: ; preds = %ENDIF2582 279 br label %ENDIF2588 280 281ELSE2590: ; preds = %ENDIF2582 282 br label %ENDIF2588 283 284ENDIF2588: ; preds = %ELSE2590, %IF2589 285 %tmp215 = fsub float 1.000000e+00, %tmp214 286 %tmp216 = call float @llvm.sqrt.f32(float %tmp215) 287 %tmp217 = fmul float %tmp216, undef 288 %tmp218 = fadd float %tmp217, undef 289 br label %ENDIF2564 290 291ELSE2593: ; preds = %ELSE2566 292 %tmp219 = fcmp oeq float %temp292.11, %tmp81 293 %tmp220 = fcmp olt float %tmp81, %tmp83 294 %tmp221 = and i1 %tmp219, %tmp220 295 br i1 %tmp221, label %ENDIF2594, label %ELSE2596 296 297ELSE2596: ; preds = %ELSE2593 298 %tmp222 = fcmp oeq float %temp292.11, %tmp100 299 %tmp223 = fcmp olt float %tmp100, %tmp102 300 %tmp224 = and i1 %tmp222, %tmp223 301 br i1 %tmp224, label %ENDIF2594, label %ELSE2632 302 303ENDIF2594: ; preds = %ELSE2788, %ELSE2785, %ELSE2782, %ELSE2779, %IF2775, %ELSE2761, %ELSE2758, %IF2757, %ELSE2704, %ELSE2686, %ELSE2671, %ELSE2668, %IF2667, %ELSE2632, %ELSE2596, %ELSE2593 304 %temp894.2 = phi float [ 0.000000e+00, %IF2667 ], [ 0.000000e+00, %ELSE2671 ], [ 0.000000e+00, %IF2757 ], [ 0.000000e+00, %ELSE2761 ], [ %temp894.0, %ELSE2758 ], [ 0.000000e+00, %IF2775 ], [ 0.000000e+00, %ELSE2779 ], [ 0.000000e+00, %ELSE2782 ], [ %.2848, %ELSE2788 ], [ 0.000000e+00, %ELSE2785 ], [ 0.000000e+00, %ELSE2593 ], [ 0.000000e+00, %ELSE2632 ], [ 0.000000e+00, %ELSE2704 ], [ 0.000000e+00, %ELSE2686 ], [ 0.000000e+00, %ELSE2668 ], [ 0.000000e+00, %ELSE2596 ] 305 %tmp225 = fmul float %temp894.2, undef 306 br label %ENDIF2564 307 308ELSE2632: ; preds = %ELSE2596 309 br i1 undef, label %ENDIF2594, label %ELSE2650 310 311ELSE2650: ; preds = %ELSE2632 312 %tmp226 = fcmp oeq float %temp292.11, %tmp110 313 %tmp227 = fcmp olt float %tmp110, %tmp111 314 %tmp228 = and i1 %tmp226, %tmp227 315 br i1 %tmp228, label %IF2667, label %ELSE2668 316 317IF2667: ; preds = %ELSE2650 318 br i1 undef, label %ENDIF2594, label %ELSE2671 319 320ELSE2668: ; preds = %ELSE2650 321 %tmp229 = fcmp oeq float %temp292.11, %tmp128 322 %tmp230 = fcmp olt float %tmp128, undef 323 %tmp231 = and i1 %tmp229, %tmp230 324 br i1 %tmp231, label %ENDIF2594, label %ELSE2686 325 326ELSE2671: ; preds = %IF2667 327 br label %ENDIF2594 328 329ELSE2686: ; preds = %ELSE2668 330 %tmp232 = fcmp oeq float %temp292.11, %tmp145 331 %tmp233 = fcmp olt float %tmp145, undef 332 %tmp234 = and i1 %tmp232, %tmp233 333 br i1 %tmp234, label %ENDIF2594, label %ELSE2704 334 335ELSE2704: ; preds = %ELSE2686 336 %tmp235 = fcmp oeq float %temp292.11, %tmp180 337 %tmp236 = fcmp olt float %tmp180, undef 338 %tmp237 = and i1 %tmp235, %tmp236 339 br i1 %tmp237, label %ENDIF2594, label %ELSE2740 340 341ELSE2740: ; preds = %ELSE2704 342 br i1 undef, label %IF2757, label %ELSE2758 343 344IF2757: ; preds = %ELSE2740 345 br i1 undef, label %ENDIF2594, label %ELSE2761 346 347ELSE2758: ; preds = %ELSE2740 348 br i1 undef, label %IF2775, label %ENDIF2594 349 350ELSE2761: ; preds = %IF2757 351 br label %ENDIF2594 352 353IF2775: ; preds = %ELSE2758 354 %tmp238 = fcmp olt float undef, undef 355 br i1 %tmp238, label %ENDIF2594, label %ELSE2779 356 357ELSE2779: ; preds = %IF2775 358 br i1 undef, label %ENDIF2594, label %ELSE2782 359 360ELSE2782: ; preds = %ELSE2779 361 br i1 undef, label %ENDIF2594, label %ELSE2785 362 363ELSE2785: ; preds = %ELSE2782 364 %tmp239 = fcmp olt float undef, 0.000000e+00 365 br i1 %tmp239, label %ENDIF2594, label %ELSE2788 366 367ELSE2788: ; preds = %ELSE2785 368 %tmp240 = fcmp olt float 0.000000e+00, undef 369 %.2848 = select i1 %tmp240, float -1.000000e+00, float 1.000000e+00 370 br label %ENDIF2594 371 372ELSE2797: ; preds = %ENDIF2564 373 %tmp241 = fsub float %tmp8, undef 374 %tmp242 = fsub float %tmp9, undef 375 %tmp243 = fsub float %tmp10, undef 376 %tmp244 = fmul float %tmp241, undef 377 %tmp245 = fmul float %tmp242, undef 378 %tmp246 = fmul float %tmp243, undef 379 %tmp247 = fsub float %tmp11, undef 380 %tmp248 = fsub float %tmp12, undef 381 %tmp249 = fsub float %tmp13, undef 382 %tmp250 = fmul float %tmp247, undef 383 %tmp251 = fmul float %tmp248, undef 384 %tmp252 = fmul float %tmp249, undef 385 %tmp253 = call float @llvm.minnum.f32(float %tmp244, float %tmp250) 386 %tmp254 = call float @llvm.minnum.f32(float %tmp245, float %tmp251) 387 %tmp255 = call float @llvm.maxnum.f32(float %tmp246, float %tmp252) 388 %tmp256 = call float @llvm.maxnum.f32(float %tmp253, float %tmp254) 389 %tmp257 = call float @llvm.maxnum.f32(float %tmp256, float undef) 390 %tmp258 = call float @llvm.minnum.f32(float undef, float %tmp255) 391 %tmp259 = fcmp ogt float %tmp257, 0.000000e+00 392 %tmp260 = fcmp olt float %tmp257, 1.000000e+00 393 %tmp261 = and i1 %tmp259, %tmp260 394 %tmp262 = fcmp olt float %tmp257, %tmp258 395 %tmp263 = and i1 %tmp261, %tmp262 396 br i1 %tmp263, label %ENDIF2795, label %ELSE2800 397 398ENDIF2795: ; preds = %ELSE2824, %ELSE2821, %ELSE2818, %ELSE2815, %ELSE2812, %ELSE2809, %ELSE2806, %ELSE2803, %ELSE2800, %ELSE2797, %ENDIF2564 399 br label %LOOP 400 401ELSE2800: ; preds = %ELSE2797 402 br i1 undef, label %ENDIF2795, label %ELSE2803 403 404ELSE2803: ; preds = %ELSE2800 405 %tmp264 = fsub float %tmp20, undef 406 %tmp265 = fsub float %tmp21, undef 407 %tmp266 = fsub float %tmp22, undef 408 %tmp267 = fmul float %tmp264, undef 409 %tmp268 = fmul float %tmp265, undef 410 %tmp269 = fmul float %tmp266, 0.000000e+00 411 %tmp270 = fsub float %tmp23, undef 412 %tmp271 = fsub float %tmp24, undef 413 %tmp272 = fsub float %tmp25, undef 414 %tmp273 = fmul float %tmp270, undef 415 %tmp274 = fmul float %tmp271, undef 416 %tmp275 = fmul float %tmp272, undef 417 %tmp276 = call float @llvm.minnum.f32(float %tmp267, float %tmp273) 418 %tmp277 = call float @llvm.maxnum.f32(float %tmp268, float %tmp274) 419 %tmp278 = call float @llvm.maxnum.f32(float %tmp269, float %tmp275) 420 %tmp279 = call float @llvm.maxnum.f32(float %tmp276, float undef) 421 %tmp280 = call float @llvm.maxnum.f32(float %tmp279, float undef) 422 %tmp281 = call float @llvm.minnum.f32(float undef, float %tmp277) 423 %tmp282 = call float @llvm.minnum.f32(float %tmp281, float %tmp278) 424 %tmp283 = fcmp ogt float %tmp280, 0.000000e+00 425 %tmp284 = fcmp olt float %tmp280, 1.000000e+00 426 %tmp285 = and i1 %tmp283, %tmp284 427 %tmp286 = fcmp olt float %tmp280, %tmp282 428 %tmp287 = and i1 %tmp285, %tmp286 429 br i1 %tmp287, label %ENDIF2795, label %ELSE2806 430 431ELSE2806: ; preds = %ELSE2803 432 %tmp288 = fsub float %tmp26, undef 433 %tmp289 = fsub float %tmp27, undef 434 %tmp290 = fsub float %tmp28, undef 435 %tmp291 = fmul float %tmp288, undef 436 %tmp292 = fmul float %tmp289, 0.000000e+00 437 %tmp293 = fmul float %tmp290, undef 438 %tmp294 = fsub float %tmp29, undef 439 %tmp295 = fmul float %tmp294, undef 440 %tmp296 = call float @llvm.minnum.f32(float %tmp291, float %tmp295) 441 %tmp297 = call float @llvm.minnum.f32(float %tmp292, float undef) 442 %tmp298 = call float @llvm.maxnum.f32(float %tmp293, float undef) 443 %tmp299 = call float @llvm.maxnum.f32(float %tmp296, float %tmp297) 444 %tmp300 = call float @llvm.maxnum.f32(float %tmp299, float undef) 445 %tmp301 = call float @llvm.minnum.f32(float undef, float %tmp298) 446 %tmp302 = fcmp ogt float %tmp300, 0.000000e+00 447 %tmp303 = fcmp olt float %tmp300, 1.000000e+00 448 %tmp304 = and i1 %tmp302, %tmp303 449 %tmp305 = fcmp olt float %tmp300, %tmp301 450 %tmp306 = and i1 %tmp304, %tmp305 451 br i1 %tmp306, label %ENDIF2795, label %ELSE2809 452 453ELSE2809: ; preds = %ELSE2806 454 br i1 undef, label %ENDIF2795, label %ELSE2812 455 456ELSE2812: ; preds = %ELSE2809 457 br i1 undef, label %ENDIF2795, label %ELSE2815 458 459ELSE2815: ; preds = %ELSE2812 460 br i1 undef, label %ENDIF2795, label %ELSE2818 461 462ELSE2818: ; preds = %ELSE2815 463 br i1 undef, label %ENDIF2795, label %ELSE2821 464 465ELSE2821: ; preds = %ELSE2818 466 %tmp307 = fsub float %tmp56, undef 467 %tmp308 = fsub float %tmp57, undef 468 %tmp309 = fsub float %tmp58, undef 469 %tmp310 = fmul float %tmp307, undef 470 %tmp311 = fmul float %tmp308, 0.000000e+00 471 %tmp312 = fmul float %tmp309, undef 472 %tmp313 = fsub float %tmp59, undef 473 %tmp314 = fsub float %tmp60, undef 474 %tmp315 = fsub float %tmp61, undef 475 %tmp316 = fmul float %tmp313, undef 476 %tmp317 = fmul float %tmp314, undef 477 %tmp318 = fmul float %tmp315, undef 478 %tmp319 = call float @llvm.maxnum.f32(float %tmp310, float %tmp316) 479 %tmp320 = call float @llvm.maxnum.f32(float %tmp311, float %tmp317) 480 %tmp321 = call float @llvm.maxnum.f32(float %tmp312, float %tmp318) 481 %tmp322 = call float @llvm.minnum.f32(float %tmp319, float %tmp320) 482 %tmp323 = call float @llvm.minnum.f32(float %tmp322, float %tmp321) 483 %tmp324 = fcmp ogt float undef, 0.000000e+00 484 %tmp325 = fcmp olt float undef, 1.000000e+00 485 %tmp326 = and i1 %tmp324, %tmp325 486 %tmp327 = fcmp olt float undef, %tmp323 487 %tmp328 = and i1 %tmp326, %tmp327 488 br i1 %tmp328, label %ENDIF2795, label %ELSE2824 489 490ELSE2824: ; preds = %ELSE2821 491 %.2849 = select i1 undef, float 0.000000e+00, float 1.000000e+00 492 br label %ENDIF2795 493} 494 495declare float @llvm.floor.f32(float) #1 496declare float @llvm.sqrt.f32(float) #1 497declare float @llvm.minnum.f32(float, float) #1 498declare float @llvm.maxnum.f32(float, float) #1 499declare i32 @llvm.amdgcn.mbcnt.lo(i32, i32) #1 500declare void @llvm.amdgcn.exp.f32(i32, i32, float, float, float, float, i1, i1) #0 501declare float @llvm.amdgcn.s.buffer.load.f32(<4 x i32>, i32, i32) #1 502 503attributes #0 = { nounwind } 504attributes #1 = { nounwind readnone } 505