Index: lib/Target/AMDGPU/AMDGPUISelLowering.h =================================================================== --- lib/Target/AMDGPU/AMDGPUISelLowering.h +++ lib/Target/AMDGPU/AMDGPUISelLowering.h @@ -176,7 +176,6 @@ SmallVectorImpl &Results, SelectionDAG &DAG) const override; - SDValue LowerIntrinsicLRP(SDValue Op, SelectionDAG &DAG) const; SDValue CombineFMinMaxLegacy(SDLoc DL, EVT VT, SDValue LHS, Index: lib/Target/AMDGPU/AMDGPUISelLowering.cpp =================================================================== --- lib/Target/AMDGPU/AMDGPUISelLowering.cpp +++ lib/Target/AMDGPU/AMDGPUISelLowering.cpp @@ -917,17 +917,11 @@ switch (IntrinsicID) { default: return Op; - case AMDGPUIntrinsic::AMDGPU_lrp: - return LowerIntrinsicLRP(Op, DAG); - case AMDGPUIntrinsic::AMDGPU_clamp: case AMDGPUIntrinsic::AMDIL_clamp: // Legacy name. return DAG.getNode(AMDGPUISD::CLAMP, DL, VT, Op.getOperand(1), Op.getOperand(2), Op.getOperand(3)); - case AMDGPUIntrinsic::AMDGPU_legacy_rsq: - return DAG.getNode(AMDGPUISD::RSQ_LEGACY, DL, VT, Op.getOperand(1)); - case Intrinsic::AMDGPU_rsq_clamped: assert(Subtarget->getGeneration() < AMDGPUSubtarget::SOUTHERN_ISLANDS); return DAG.getNode(AMDGPUISD::RSQ_CLAMPED, DL, VT, Op.getOperand(1)); @@ -983,23 +977,6 @@ } } -/// Linear Interpolation -/// LRP(a, b, c) = muladd(a, b, (1 - a) * c) -SDValue AMDGPUTargetLowering::LowerIntrinsicLRP(SDValue Op, - SelectionDAG &DAG) const { - SDLoc DL(Op); - EVT VT = Op.getValueType(); - // TODO: Should this propagate fast-math-flags? - SDValue OneSubA = DAG.getNode(ISD::FSUB, DL, VT, - DAG.getConstantFP(1.0f, DL, MVT::f32), - Op.getOperand(1)); - SDValue OneSubAC = DAG.getNode(ISD::FMUL, DL, VT, OneSubA, - Op.getOperand(3)); - return DAG.getNode(ISD::FADD, DL, VT, - DAG.getNode(ISD::FMUL, DL, VT, Op.getOperand(1), Op.getOperand(2)), - OneSubAC); -} - /// \brief Generate Min/Max node SDValue AMDGPUTargetLowering::CombineFMinMaxLegacy(SDLoc DL, EVT VT, Index: lib/Target/AMDGPU/AMDGPUIntrinsics.td =================================================================== --- lib/Target/AMDGPU/AMDGPUIntrinsics.td +++ lib/Target/AMDGPU/AMDGPUIntrinsics.td @@ -12,34 +12,11 @@ //===----------------------------------------------------------------------===// let TargetPrefix = "AMDGPU", isTarget = 1 in { - - def int_AMDGPU_store_output : Intrinsic<[], [llvm_float_ty, llvm_i32_ty], []>; - def int_AMDGPU_swizzle : Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i32_ty], [IntrNoMem]>; - def int_AMDGPU_abs : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>; - def int_AMDGPU_arl : Intrinsic<[llvm_i32_ty], [llvm_float_ty], [IntrNoMem]>; - def int_AMDGPU_cndlt : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem]>; - def int_AMDGPU_div : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>; def int_AMDGPU_clamp : Intrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; - // This is named backwards (instead of rsq_legacy) so we don't have - // to define it with the public builtins intrinsics. This is a - // workaround for how intrinsic names are parsed. If the name is - // llvm.AMDGPU.rsq.legacy, the parser assumes that you meant - // llvm.AMDGPU.rsq.{f32 | f64} and incorrectly mangled the name. - def int_AMDGPU_legacy_rsq : Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>; - def int_AMDGPU_dp4 : Intrinsic<[llvm_float_ty], [llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>; def int_AMDGPU_kill : Intrinsic<[], [llvm_float_ty], []>; def int_AMDGPU_kilp : Intrinsic<[], [], []>; - def int_AMDGPU_lrp : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem]>; - def int_AMDGPU_mul : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>; - def int_AMDGPU_pow : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>; - def int_AMDGPU_seq : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>; - def int_AMDGPU_sgt : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>; - def int_AMDGPU_sge : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>; - def int_AMDGPU_sle : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>; - def int_AMDGPU_sne : Intrinsic<[llvm_float_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>; - def int_AMDGPU_mullit : Intrinsic<[llvm_v4f32_ty], [llvm_float_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem]>; def int_AMDGPU_tex : Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_AMDGPU_txb : Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_AMDGPU_txf : Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; Index: lib/Target/AMDGPU/R600ISelLowering.cpp =================================================================== --- lib/Target/AMDGPU/R600ISelLowering.cpp +++ lib/Target/AMDGPU/R600ISelLowering.cpp @@ -615,12 +615,6 @@ unsigned IntrinsicID = cast(Op.getOperand(1))->getZExtValue(); switch (IntrinsicID) { - case AMDGPUIntrinsic::AMDGPU_store_output: { - int64_t RegIndex = cast(Op.getOperand(3))->getZExtValue(); - unsigned Reg = AMDGPU::R600_TReg32RegClass.getRegister(RegIndex); - MFI->LiveOuts.push_back(Reg); - return DAG.getCopyToReg(Chain, SDLoc(Op), Reg, Op.getOperand(2)); - } case AMDGPUIntrinsic::R600_store_swizzle: { SDLoc DL(Op); const SDValue Args[8] = { Index: lib/Target/AMDGPU/R600Instructions.td =================================================================== --- lib/Target/AMDGPU/R600Instructions.td +++ lib/Target/AMDGPU/R600Instructions.td @@ -160,7 +160,8 @@ let Inst{63-32} = Word1; } -class R600_2OP_Helper inst, string opName, SDPatternOperator node, +class R600_2OP_Helper inst, string opName, + SDPatternOperator node = null_frag, InstrItinClass itin = AnyALU> : R600_2OP ; // Non-IEEE MUL: 0 * anything = 0 -def MUL : R600_2OP_Helper <0x1, "MUL NON-IEEE", int_AMDGPU_mul>; +def MUL : R600_2OP_Helper <0x1, "MUL NON-IEEE">; def MUL_IEEE : R600_2OP_Helper <0x2, "MUL_IEEE", fmul>; // TODO: Do these actually match the regular fmin/fmax behavior? def MAX : R600_2OP_Helper <0x3, "MAX", AMDGPUfmax_legacy>; @@ -1136,11 +1137,6 @@ // FIXME: Should be predicated on unsafe fp math. multiclass DIV_Common { def : Pat< - (int_AMDGPU_div f32:$src0, f32:$src1), - (MUL_IEEE $src0, (recip_ieee $src1)) ->; - -def : Pat< (fdiv f32:$src0, f32:$src1), (MUL_IEEE $src0, (recip_ieee $src1)) >; Index: lib/Target/AMDGPU/SIInstructions.td =================================================================== --- lib/Target/AMDGPU/SIInstructions.td +++ lib/Target/AMDGPU/SIInstructions.td @@ -1450,7 +1450,7 @@ let isCommutable = 1 in { defm V_MUL_LEGACY_F32 : VOP2Inst , "v_mul_legacy_f32", - VOP_F32_F32_F32, int_AMDGPU_mul + VOP_F32_F32_F32 >; defm V_MUL_F32 : VOP2Inst , "v_mul_f32", @@ -2049,13 +2049,6 @@ let Predicates = [isGCN] in { -def : Pat< - (int_AMDGPU_cndlt f32:$src0, f32:$src1, f32:$src2), - (V_CNDMASK_B32_e64 $src2, $src1, - (V_CMP_GT_F32_e64 SRCMODS.NONE, 0, SRCMODS.NONE, $src0, - DSTCLAMP.NONE, DSTOMOD.NONE)) ->; - def : Pat < (int_AMDGPU_kilp), (SI_KILL 0xbf800000) @@ -2713,11 +2706,6 @@ def : POW_Common ; def : Pat < - (int_AMDGPU_div f32:$src0, f32:$src1), - (V_MUL_LEGACY_F32_e32 $src0, (V_RCP_LEGACY_F32_e32 $src1)) ->; - -def : Pat < (int_AMDGPU_cube v4f32:$src), (REG_SEQUENCE VReg_128, (V_CUBETC_F32 0 /* src0_modifiers */, (EXTRACT_SUBREG $src, sub0), Index: test/CodeGen/AMDGPU/big_alu.ll =================================================================== --- test/CodeGen/AMDGPU/big_alu.ll +++ test/CodeGen/AMDGPU/big_alu.ll @@ -1,9 +1,9 @@ -;RUN: llc < %s -march=r600 -mcpu=cedar +; RUN: llc -march=r600 -mcpu=cedar < %s -;This test ensures that R600 backend can handle ifcvt properly -;and do not generate ALU clauses with more than 128 instructions. +; This test ensures that R600 backend can handle ifcvt properly +; and do not generate ALU clauses with more than 128 instructions. -define void @main(<4 x float> inreg %reg0, <4 x float> inreg %reg1, <4 x float> inreg %reg2, <4 x float> inreg %reg3, <4 x float> inreg %reg4, <4 x float> inreg %reg5, <4 x float> inreg %reg6, <4 x float> inreg %reg7, <4 x float> inreg %reg8, <4 x float> inreg %reg9) #0 { +define void @main(<4 x float> inreg %reg0, <4 x float> inreg %reg1, <4 x float> inreg %reg2, <4 x float> inreg %reg3, <4 x float> inreg %reg4, <4 x float> inreg %reg5, <4 x float> inreg %reg6, <4 x float> inreg %reg7, <4 x float> inreg %reg8, <4 x float> inreg %reg9) #1 { main_body: %0 = extractelement <4 x float> %reg0, i32 0 %1 = extractelement <4 x float> %reg0, i32 1 @@ -149,10 +149,10 @@ %137 = bitcast float %136 to i32 br label %LOOP -ENDIF136: ; preds = %main_body, %ENDIF154 - %temp68.1 = phi float [ %600, %ENDIF154 ], [ 0.000000e+00, %main_body ] - %temp69.0 = phi float [ %602, %ENDIF154 ], [ 0.000000e+00, %main_body ] - %temp70.0 = phi float [ %604, %ENDIF154 ], [ 1.000000e+00, %main_body ] +ENDIF136: ; preds = %ENDIF154, %main_body + %temp68.1 = phi float [ %591, %ENDIF154 ], [ 0.000000e+00, %main_body ] + %temp69.0 = phi float [ %593, %ENDIF154 ], [ 0.000000e+00, %main_body ] + %temp70.0 = phi float [ %595, %ENDIF154 ], [ 1.000000e+00, %main_body ] %138 = fmul float %26, 0x3F847AE140000000 %139 = fmul float %27, 0x3F847AE140000000 %140 = fmul float %28, 0x3F847AE140000000 @@ -217,957 +217,1088 @@ %199 = fmul float 0xBE5EFB4CC0000000, %182 %200 = fmul float %199, %182 %201 = call float @llvm.AMDIL.exp.(float %200) - %202 = call float @llvm.AMDGPU.lrp(float %201, float %198, float 0x3FA99999A0000000) - %203 = fadd float %202, 0x3FF4CCCCC0000000 - %204 = fmul float %203, 0x3FE1C71C80000000 - %205 = call float @llvm.AMDIL.clamp.(float %204, float 0.000000e+00, float 1.000000e+00) - %206 = fadd float %202, 0x3FF4CCCCC0000000 - %207 = fmul float %206, 0x3FE1C71C80000000 - %208 = call float @llvm.AMDIL.clamp.(float %207, float 0.000000e+00, float 1.000000e+00) - %209 = fadd float %202, 2.000000e+00 - %210 = fmul float %209, 0x3FD611A7A0000000 - %211 = call float @llvm.AMDIL.clamp.(float %210, float 0.000000e+00, float 1.000000e+00) - %212 = fmul float 2.000000e+00, %205 - %213 = fsub float -0.000000e+00, %212 - %214 = fadd float 3.000000e+00, %213 - %215 = fmul float %205, %214 - %216 = fmul float %205, %215 - %217 = fmul float 2.000000e+00, %208 - %218 = fsub float -0.000000e+00, %217 - %219 = fadd float 3.000000e+00, %218 - %220 = fmul float %208, %219 - %221 = fmul float %208, %220 - %222 = fmul float 2.000000e+00, %211 - %223 = fsub float -0.000000e+00, %222 - %224 = fadd float 3.000000e+00, %223 - %225 = fmul float %211, %224 - %226 = fmul float %211, %225 - %227 = fmul float %26, 0x3F368B5CC0000000 - %228 = fmul float %27, 0x3F368B5CC0000000 - %229 = insertelement <4 x float> undef, float %227, i32 0 - %230 = insertelement <4 x float> %229, float %228, i32 1 - %231 = insertelement <4 x float> %230, float 0.000000e+00, i32 2 - %232 = insertelement <4 x float> %231, float 0.000000e+00, i32 3 - %233 = extractelement <4 x float> %232, i32 0 - %234 = extractelement <4 x float> %232, i32 1 - %235 = insertelement <4 x float> undef, float %233, i32 0 - %236 = insertelement <4 x float> %235, float %234, i32 1 - %237 = insertelement <4 x float> %236, float undef, i32 2 - %238 = insertelement <4 x float> %237, float undef, i32 3 - %239 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %238, i32 17, i32 1, i32 2) - %240 = extractelement <4 x float> %239, i32 0 - %241 = insertelement <4 x float> undef, float %240, i32 0 - %242 = insertelement <4 x float> %241, float %228, i32 1 - %243 = insertelement <4 x float> %242, float 0.000000e+00, i32 2 - %244 = insertelement <4 x float> %243, float 0.000000e+00, i32 3 - %245 = extractelement <4 x float> %244, i32 0 - %246 = insertelement <4 x float> undef, float %245, i32 0 - %247 = insertelement <4 x float> %246, float undef, i32 1 - %248 = insertelement <4 x float> %247, float undef, i32 2 - %249 = insertelement <4 x float> %248, float undef, i32 3 - %250 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %249, i32 18, i32 2, i32 1) - %251 = extractelement <4 x float> %250, i32 0 - %252 = extractelement <4 x float> %250, i32 1 - %253 = extractelement <4 x float> %250, i32 2 - %254 = extractelement <4 x float> %250, i32 3 - %255 = fmul float %251, %216 - %256 = fmul float %252, %221 - %257 = fmul float %253, %226 - %258 = fmul float %254, 0.000000e+00 - %259 = fadd float %202, 0x3FF4CCCCC0000000 - %260 = fmul float %259, 0x3FE1C71C80000000 - %261 = call float @llvm.AMDIL.clamp.(float %260, float 0.000000e+00, float 1.000000e+00) - %262 = fadd float %202, 0x3FF4CCCCC0000000 - %263 = fmul float %262, 0x3FE1C71C80000000 - %264 = call float @llvm.AMDIL.clamp.(float %263, float 0.000000e+00, float 1.000000e+00) - %265 = fadd float %202, 2.000000e+00 - %266 = fmul float %265, 0x3FD611A7A0000000 - %267 = call float @llvm.AMDIL.clamp.(float %266, float 0.000000e+00, float 1.000000e+00) - %268 = fmul float 2.000000e+00, %261 - %269 = fsub float -0.000000e+00, %268 - %270 = fadd float 3.000000e+00, %269 - %271 = fmul float %261, %270 - %272 = fmul float %261, %271 - %273 = fmul float 2.000000e+00, %264 - %274 = fsub float -0.000000e+00, %273 - %275 = fadd float 3.000000e+00, %274 - %276 = fmul float %264, %275 - %277 = fmul float %264, %276 - %278 = fmul float 2.000000e+00, %267 - %279 = fsub float -0.000000e+00, %278 - %280 = fadd float 3.000000e+00, %279 - %281 = fmul float %267, %280 - %282 = fmul float %267, %281 - %283 = fmul float %26, 0x3F22DFD6A0000000 - %284 = fmul float %27, 0x3F22DFD6A0000000 - %285 = insertelement <4 x float> undef, float %283, i32 0 - %286 = insertelement <4 x float> %285, float %284, i32 1 - %287 = insertelement <4 x float> %286, float 0.000000e+00, i32 2 - %288 = insertelement <4 x float> %287, float 0.000000e+00, i32 3 - %289 = extractelement <4 x float> %288, i32 0 - %290 = extractelement <4 x float> %288, i32 1 - %291 = insertelement <4 x float> undef, float %289, i32 0 - %292 = insertelement <4 x float> %291, float %290, i32 1 - %293 = insertelement <4 x float> %292, float undef, i32 2 - %294 = insertelement <4 x float> %293, float undef, i32 3 - %295 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %294, i32 19, i32 3, i32 2) - %296 = extractelement <4 x float> %295, i32 0 - %297 = extractelement <4 x float> %295, i32 1 - %298 = extractelement <4 x float> %295, i32 2 - %299 = extractelement <4 x float> %295, i32 3 - %300 = fmul float %296, %272 - %301 = fmul float %297, %277 - %302 = fmul float %298, %282 - %303 = fmul float %299, 0.000000e+00 - %304 = fmul float %temp68.1, %37 - %305 = fmul float %temp68.1, %38 - %306 = fmul float %temp68.1, %39 - %307 = fmul float %temp69.0, %40 - %308 = fadd float %307, %304 - %309 = fmul float %temp69.0, %41 - %310 = fadd float %309, %305 - %311 = fmul float %temp69.0, %42 - %312 = fadd float %311, %306 - %313 = fmul float %temp70.0, %34 - %314 = fadd float %313, %308 - %315 = fmul float %temp70.0, %35 - %316 = fadd float %315, %310 - %317 = fmul float %temp70.0, %36 - %318 = fadd float %317, %312 - %319 = insertelement <4 x float> undef, float %314, i32 0 - %320 = insertelement <4 x float> %319, float %316, i32 1 - %321 = insertelement <4 x float> %320, float %318, i32 2 - %322 = insertelement <4 x float> %321, float 0.000000e+00, i32 3 - %323 = insertelement <4 x float> undef, float %314, i32 0 - %324 = insertelement <4 x float> %323, float %316, i32 1 - %325 = insertelement <4 x float> %324, float %318, i32 2 - %326 = insertelement <4 x float> %325, float 0.000000e+00, i32 3 - %327 = call float @llvm.AMDGPU.dp4(<4 x float> %322, <4 x float> %326) - %328 = call float @llvm.AMDGPU.rsq.clamped.f32(float %327) - %329 = fmul float %314, %328 - %330 = fmul float %316, %328 - %331 = fmul float %318, %328 - %332 = load <4 x float>, <4 x float> addrspace(8)* getelementptr ([1024 x <4 x float>], [1024 x <4 x float>] addrspace(8)* null, i64 0, i32 6) - %333 = extractelement <4 x float> %332, i32 0 - %334 = fsub float -0.000000e+00, %333 - %335 = fadd float 1.000000e+00, %334 - %336 = load <4 x float>, <4 x float> addrspace(8)* getelementptr ([1024 x <4 x float>], [1024 x <4 x float>] addrspace(8)* null, i64 0, i32 7) - %337 = extractelement <4 x float> %336, i32 0 - %338 = fsub float -0.000000e+00, %337 - %339 = fadd float 1.000000e+00, %338 - %340 = load <4 x float>, <4 x float> addrspace(8)* getelementptr ([1024 x <4 x float>], [1024 x <4 x float>] addrspace(8)* null, i64 0, i32 8) - %341 = extractelement <4 x float> %340, i32 0 - %342 = fsub float -0.000000e+00, %341 - %343 = fadd float 1.000000e+00, %342 - %344 = fsub float -0.000000e+00, %335 - %345 = fadd float %202, %344 - %346 = fsub float -0.000000e+00, %339 - %347 = fadd float %202, %346 - %348 = fadd float %347, 0xBFE3333340000000 - %349 = fsub float -0.000000e+00, %202 - %350 = fsub float -0.000000e+00, %343 - %351 = fadd float %349, %350 - %352 = insertelement <4 x float> undef, float %43, i32 0 - %353 = insertelement <4 x float> %352, float %44, i32 1 - %354 = insertelement <4 x float> %353, float %45, i32 2 - %355 = insertelement <4 x float> %354, float 0.000000e+00, i32 3 - %356 = insertelement <4 x float> undef, float %43, i32 0 - %357 = insertelement <4 x float> %356, float %44, i32 1 - %358 = insertelement <4 x float> %357, float %45, i32 2 - %359 = insertelement <4 x float> %358, float 0.000000e+00, i32 3 - %360 = call float @llvm.AMDGPU.dp4(<4 x float> %355, <4 x float> %359) - %361 = call float @llvm.AMDGPU.rsq.clamped.f32(float %360) - %362 = fmul float %45, %361 - %363 = call float @fabs(float %362) - %364 = fmul float %176, 0x3FECCCCCC0000000 - %365 = fadd float %364, %363 - %366 = fadd float %365, 0xBFEFAE1480000000 - %367 = fmul float %366, 0xC023FFFFC0000000 - %368 = call float @llvm.AMDIL.clamp.(float %367, float 0.000000e+00, float 1.000000e+00) - %369 = fsub float -0.000000e+00, %335 - %370 = fadd float %202, %369 - %371 = fadd float %370, 0x3FBEB851E0000000 - %372 = fsub float -0.000000e+00, %339 - %373 = fadd float %202, %372 - %374 = fadd float %373, 0xBFE0A3D700000000 - %375 = fsub float -0.000000e+00, %202 - %376 = fsub float -0.000000e+00, %343 - %377 = fadd float %375, %376 - %378 = insertelement <4 x float> undef, float %43, i32 0 - %379 = insertelement <4 x float> %378, float %44, i32 1 - %380 = insertelement <4 x float> %379, float %45, i32 2 - %381 = insertelement <4 x float> %380, float 0.000000e+00, i32 3 - %382 = insertelement <4 x float> undef, float %43, i32 0 - %383 = insertelement <4 x float> %382, float %44, i32 1 - %384 = insertelement <4 x float> %383, float %45, i32 2 - %385 = insertelement <4 x float> %384, float 0.000000e+00, i32 3 - %386 = call float @llvm.AMDGPU.dp4(<4 x float> %381, <4 x float> %385) - %387 = call float @llvm.AMDGPU.rsq.clamped.f32(float %386) - %388 = fmul float %45, %387 - %389 = call float @fabs(float %388) - %390 = fmul float %176, 0x3FF51EB860000000 - %391 = fadd float %390, %389 - %392 = fadd float %391, 0xBFEFAE1480000000 - %393 = fmul float %392, 0xC0490001A0000000 - %394 = call float @llvm.AMDIL.clamp.(float %393, float 0.000000e+00, float 1.000000e+00) - %395 = fmul float 2.000000e+00, %368 - %396 = fsub float -0.000000e+00, %395 - %397 = fadd float 3.000000e+00, %396 - %398 = fmul float %368, %397 - %399 = fmul float %368, %398 - %400 = call float @llvm.AMDGPU.lrp(float %399, float %255, float %345) - %401 = call float @llvm.AMDGPU.lrp(float %399, float %256, float %348) - %402 = call float @llvm.AMDGPU.lrp(float %399, float %257, float %351) - %403 = call float @llvm.AMDGPU.lrp(float %399, float %258, float 0.000000e+00) - %404 = fmul float 2.000000e+00, %394 - %405 = fsub float -0.000000e+00, %404 - %406 = fadd float 3.000000e+00, %405 - %407 = fmul float %394, %406 - %408 = fmul float %394, %407 - %409 = call float @llvm.AMDGPU.lrp(float %408, float %255, float %371) - %410 = call float @llvm.AMDGPU.lrp(float %408, float %256, float %374) - %411 = call float @llvm.AMDGPU.lrp(float %408, float %257, float %377) - %412 = call float @llvm.AMDGPU.lrp(float %408, float %258, float 0x3FD3333340000000) - %413 = fcmp oge float 2.200000e+03, %179 - %414 = sext i1 %413 to i32 - %415 = bitcast i32 %414 to float - %416 = bitcast float %415 to i32 - %417 = icmp ne i32 %416, 0 - br i1 %417, label %IF161, label %ENDIF160 + %one.sub.a.i = fsub float 1.000000e+00, %201 + %one.sub.ac.i = fmul float %one.sub.a.i, 0x3FA99999A0000000 + %mul.i = fmul float %198, 0x3FA99999A0000000 + %result.i = fadd float %mul.i, %one.sub.ac.i + %202 = fadd float %result.i, 0x3FF4CCCCC0000000 + %203 = fmul float %202, 0x3FE1C71C80000000 + %204 = call float @llvm.AMDIL.clamp.(float %203, float 0.000000e+00, float 1.000000e+00) + %205 = fadd float %result.i, 0x3FF4CCCCC0000000 + %206 = fmul float %205, 0x3FE1C71C80000000 + %207 = call float @llvm.AMDIL.clamp.(float %206, float 0.000000e+00, float 1.000000e+00) + %208 = fadd float %result.i, 2.000000e+00 + %209 = fmul float %208, 0x3FD611A7A0000000 + %210 = call float @llvm.AMDIL.clamp.(float %209, float 0.000000e+00, float 1.000000e+00) + %211 = fmul float 2.000000e+00, %204 + %212 = fsub float -0.000000e+00, %211 + %213 = fadd float 3.000000e+00, %212 + %214 = fmul float %204, %213 + %215 = fmul float %204, %214 + %216 = fmul float 2.000000e+00, %207 + %217 = fsub float -0.000000e+00, %216 + %218 = fadd float 3.000000e+00, %217 + %219 = fmul float %207, %218 + %220 = fmul float %207, %219 + %221 = fmul float 2.000000e+00, %210 + %222 = fsub float -0.000000e+00, %221 + %223 = fadd float 3.000000e+00, %222 + %224 = fmul float %210, %223 + %225 = fmul float %210, %224 + %226 = fmul float %26, 0x3F368B5CC0000000 + %227 = fmul float %27, 0x3F368B5CC0000000 + %228 = insertelement <4 x float> undef, float %226, i32 0 + %229 = insertelement <4 x float> %228, float %227, i32 1 + %230 = insertelement <4 x float> %229, float 0.000000e+00, i32 2 + %231 = insertelement <4 x float> %230, float 0.000000e+00, i32 3 + %232 = extractelement <4 x float> %231, i32 0 + %233 = extractelement <4 x float> %231, i32 1 + %234 = insertelement <4 x float> undef, float %232, i32 0 + %235 = insertelement <4 x float> %234, float %233, i32 1 + %236 = insertelement <4 x float> %235, float undef, i32 2 + %237 = insertelement <4 x float> %236, float undef, i32 3 + %238 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %237, i32 17, i32 1, i32 2) + %239 = extractelement <4 x float> %238, i32 0 + %240 = insertelement <4 x float> undef, float %239, i32 0 + %241 = insertelement <4 x float> %240, float %227, i32 1 + %242 = insertelement <4 x float> %241, float 0.000000e+00, i32 2 + %243 = insertelement <4 x float> %242, float 0.000000e+00, i32 3 + %244 = extractelement <4 x float> %243, i32 0 + %245 = insertelement <4 x float> undef, float %244, i32 0 + %246 = insertelement <4 x float> %245, float undef, i32 1 + %247 = insertelement <4 x float> %246, float undef, i32 2 + %248 = insertelement <4 x float> %247, float undef, i32 3 + %249 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %248, i32 18, i32 2, i32 1) + %250 = extractelement <4 x float> %249, i32 0 + %251 = extractelement <4 x float> %249, i32 1 + %252 = extractelement <4 x float> %249, i32 2 + %253 = extractelement <4 x float> %249, i32 3 + %254 = fmul float %250, %215 + %255 = fmul float %251, %220 + %256 = fmul float %252, %225 + %257 = fmul float %253, 0.000000e+00 + %258 = fadd float %result.i, 0x3FF4CCCCC0000000 + %259 = fmul float %258, 0x3FE1C71C80000000 + %260 = call float @llvm.AMDIL.clamp.(float %259, float 0.000000e+00, float 1.000000e+00) + %261 = fadd float %result.i, 0x3FF4CCCCC0000000 + %262 = fmul float %261, 0x3FE1C71C80000000 + %263 = call float @llvm.AMDIL.clamp.(float %262, float 0.000000e+00, float 1.000000e+00) + %264 = fadd float %result.i, 2.000000e+00 + %265 = fmul float %264, 0x3FD611A7A0000000 + %266 = call float @llvm.AMDIL.clamp.(float %265, float 0.000000e+00, float 1.000000e+00) + %267 = fmul float 2.000000e+00, %260 + %268 = fsub float -0.000000e+00, %267 + %269 = fadd float 3.000000e+00, %268 + %270 = fmul float %260, %269 + %271 = fmul float %260, %270 + %272 = fmul float 2.000000e+00, %263 + %273 = fsub float -0.000000e+00, %272 + %274 = fadd float 3.000000e+00, %273 + %275 = fmul float %263, %274 + %276 = fmul float %263, %275 + %277 = fmul float 2.000000e+00, %266 + %278 = fsub float -0.000000e+00, %277 + %279 = fadd float 3.000000e+00, %278 + %280 = fmul float %266, %279 + %281 = fmul float %266, %280 + %282 = fmul float %26, 0x3F22DFD6A0000000 + %283 = fmul float %27, 0x3F22DFD6A0000000 + %284 = insertelement <4 x float> undef, float %282, i32 0 + %285 = insertelement <4 x float> %284, float %283, i32 1 + %286 = insertelement <4 x float> %285, float 0.000000e+00, i32 2 + %287 = insertelement <4 x float> %286, float 0.000000e+00, i32 3 + %288 = extractelement <4 x float> %287, i32 0 + %289 = extractelement <4 x float> %287, i32 1 + %290 = insertelement <4 x float> undef, float %288, i32 0 + %291 = insertelement <4 x float> %290, float %289, i32 1 + %292 = insertelement <4 x float> %291, float undef, i32 2 + %293 = insertelement <4 x float> %292, float undef, i32 3 + %294 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %293, i32 19, i32 3, i32 2) + %295 = extractelement <4 x float> %294, i32 0 + %296 = extractelement <4 x float> %294, i32 1 + %297 = extractelement <4 x float> %294, i32 2 + %298 = extractelement <4 x float> %294, i32 3 + %299 = fmul float %295, %271 + %300 = fmul float %296, %276 + %301 = fmul float %297, %281 + %302 = fmul float %298, 0.000000e+00 + %303 = fmul float %temp68.1, %37 + %304 = fmul float %temp68.1, %38 + %305 = fmul float %temp68.1, %39 + %306 = fmul float %temp69.0, %40 + %307 = fadd float %306, %303 + %308 = fmul float %temp69.0, %41 + %309 = fadd float %308, %304 + %310 = fmul float %temp69.0, %42 + %311 = fadd float %310, %305 + %312 = fmul float %temp70.0, %34 + %313 = fadd float %312, %307 + %314 = fmul float %temp70.0, %35 + %315 = fadd float %314, %309 + %316 = fmul float %temp70.0, %36 + %317 = fadd float %316, %311 + %318 = insertelement <4 x float> undef, float %313, i32 0 + %319 = insertelement <4 x float> %318, float %315, i32 1 + %320 = insertelement <4 x float> %319, float %317, i32 2 + %321 = insertelement <4 x float> %320, float 0.000000e+00, i32 3 + %322 = insertelement <4 x float> undef, float %313, i32 0 + %323 = insertelement <4 x float> %322, float %315, i32 1 + %324 = insertelement <4 x float> %323, float %317, i32 2 + %325 = insertelement <4 x float> %324, float 0.000000e+00, i32 3 + %326 = call float @llvm.AMDGPU.dp4(<4 x float> %321, <4 x float> %325) + %327 = call float @llvm.AMDGPU.rsq.clamped.f32(float %326) + %328 = fmul float %313, %327 + %329 = fmul float %315, %327 + %330 = fmul float %317, %327 + %331 = load <4 x float>, <4 x float> addrspace(8)* getelementptr ([1024 x <4 x float>], [1024 x <4 x float>] addrspace(8)* null, i64 0, i32 6) + %332 = extractelement <4 x float> %331, i32 0 + %333 = fsub float -0.000000e+00, %332 + %334 = fadd float 1.000000e+00, %333 + %335 = load <4 x float>, <4 x float> addrspace(8)* getelementptr ([1024 x <4 x float>], [1024 x <4 x float>] addrspace(8)* null, i64 0, i32 7) + %336 = extractelement <4 x float> %335, i32 0 + %337 = fsub float -0.000000e+00, %336 + %338 = fadd float 1.000000e+00, %337 + %339 = load <4 x float>, <4 x float> addrspace(8)* getelementptr ([1024 x <4 x float>], [1024 x <4 x float>] addrspace(8)* null, i64 0, i32 8) + %340 = extractelement <4 x float> %339, i32 0 + %341 = fsub float -0.000000e+00, %340 + %342 = fadd float 1.000000e+00, %341 + %343 = fsub float -0.000000e+00, %334 + %344 = fadd float %result.i, %343 + %345 = fsub float -0.000000e+00, %338 + %346 = fadd float %result.i, %345 + %347 = fadd float %346, 0xBFE3333340000000 + %348 = fsub float -0.000000e+00, %result.i + %349 = fsub float -0.000000e+00, %342 + %350 = fadd float %348, %349 + %351 = insertelement <4 x float> undef, float %43, i32 0 + %352 = insertelement <4 x float> %351, float %44, i32 1 + %353 = insertelement <4 x float> %352, float %45, i32 2 + %354 = insertelement <4 x float> %353, float 0.000000e+00, i32 3 + %355 = insertelement <4 x float> undef, float %43, i32 0 + %356 = insertelement <4 x float> %355, float %44, i32 1 + %357 = insertelement <4 x float> %356, float %45, i32 2 + %358 = insertelement <4 x float> %357, float 0.000000e+00, i32 3 + %359 = call float @llvm.AMDGPU.dp4(<4 x float> %354, <4 x float> %358) + %360 = call float @llvm.AMDGPU.rsq.clamped.f32(float %359) + %361 = fmul float %45, %360 + %362 = call float @fabs(float %361) + %363 = fmul float %176, 0x3FECCCCCC0000000 + %364 = fadd float %363, %362 + %365 = fadd float %364, 0xBFEFAE1480000000 + %366 = fmul float %365, 0xC023FFFFC0000000 + %367 = call float @llvm.AMDIL.clamp.(float %366, float 0.000000e+00, float 1.000000e+00) + %368 = fsub float -0.000000e+00, %334 + %369 = fadd float %result.i, %368 + %370 = fadd float %369, 0x3FBEB851E0000000 + %371 = fsub float -0.000000e+00, %338 + %372 = fadd float %result.i, %371 + %373 = fadd float %372, 0xBFE0A3D700000000 + %374 = fsub float -0.000000e+00, %result.i + %375 = fsub float -0.000000e+00, %342 + %376 = fadd float %374, %375 + %377 = insertelement <4 x float> undef, float %43, i32 0 + %378 = insertelement <4 x float> %377, float %44, i32 1 + %379 = insertelement <4 x float> %378, float %45, i32 2 + %380 = insertelement <4 x float> %379, float 0.000000e+00, i32 3 + %381 = insertelement <4 x float> undef, float %43, i32 0 + %382 = insertelement <4 x float> %381, float %44, i32 1 + %383 = insertelement <4 x float> %382, float %45, i32 2 + %384 = insertelement <4 x float> %383, float 0.000000e+00, i32 3 + %385 = call float @llvm.AMDGPU.dp4(<4 x float> %380, <4 x float> %384) + %386 = call float @llvm.AMDGPU.rsq.clamped.f32(float %385) + %387 = fmul float %45, %386 + %388 = call float @fabs(float %387) + %389 = fmul float %176, 0x3FF51EB860000000 + %390 = fadd float %389, %388 + %391 = fadd float %390, 0xBFEFAE1480000000 + %392 = fmul float %391, 0xC0490001A0000000 + %393 = call float @llvm.AMDIL.clamp.(float %392, float 0.000000e+00, float 1.000000e+00) + %394 = fmul float 2.000000e+00, %367 + %395 = fsub float -0.000000e+00, %394 + %396 = fadd float 3.000000e+00, %395 + %397 = fmul float %367, %396 + %398 = fmul float %367, %397 + %one.sub.a.i169 = fsub float 1.000000e+00, %398 + %one.sub.ac.i170 = fmul float %one.sub.a.i169, %344 + %mul.i171 = fmul float %254, %344 + %result.i172 = fadd float %mul.i171, %one.sub.ac.i170 + %one.sub.a.i165 = fsub float 1.000000e+00, %398 + %one.sub.ac.i166 = fmul float %one.sub.a.i165, %347 + %mul.i167 = fmul float %255, %347 + %result.i168 = fadd float %mul.i167, %one.sub.ac.i166 + %one.sub.a.i161 = fsub float 1.000000e+00, %398 + %one.sub.ac.i162 = fmul float %one.sub.a.i161, %350 + %mul.i163 = fmul float %256, %350 + %result.i164 = fadd float %mul.i163, %one.sub.ac.i162 + %one.sub.a.i157 = fsub float 1.000000e+00, %398 + %one.sub.ac.i158 = fmul float %one.sub.a.i157, 0.000000e+00 + %mul.i159 = fmul float %257, 0.000000e+00 + %result.i160 = fadd float %mul.i159, %one.sub.ac.i158 + %399 = fmul float 2.000000e+00, %393 + %400 = fsub float -0.000000e+00, %399 + %401 = fadd float 3.000000e+00, %400 + %402 = fmul float %393, %401 + %403 = fmul float %393, %402 + %one.sub.a.i153 = fsub float 1.000000e+00, %403 + %one.sub.ac.i154 = fmul float %one.sub.a.i153, %370 + %mul.i155 = fmul float %254, %370 + %result.i156 = fadd float %mul.i155, %one.sub.ac.i154 + %one.sub.a.i149 = fsub float 1.000000e+00, %403 + %one.sub.ac.i150 = fmul float %one.sub.a.i149, %373 + %mul.i151 = fmul float %255, %373 + %result.i152 = fadd float %mul.i151, %one.sub.ac.i150 + %one.sub.a.i145 = fsub float 1.000000e+00, %403 + %one.sub.ac.i146 = fmul float %one.sub.a.i145, %376 + %mul.i147 = fmul float %256, %376 + %result.i148 = fadd float %mul.i147, %one.sub.ac.i146 + %one.sub.a.i141 = fsub float 1.000000e+00, %403 + %one.sub.ac.i142 = fmul float %one.sub.a.i141, 0x3FD3333340000000 + %mul.i143 = fmul float %257, 0x3FD3333340000000 + %result.i144 = fadd float %mul.i143, %one.sub.ac.i142 + %404 = fcmp oge float 2.200000e+03, %179 + %405 = sext i1 %404 to i32 + %406 = bitcast i32 %405 to float + %407 = bitcast float %406 to i32 + %408 = icmp ne i32 %407, 0 + br i1 %408, label %IF161, label %ENDIF160 LOOP: ; preds = %ENDIF139, %IF137 - %temp88.0 = phi float [ 0.000000e+00, %IF137 ], [ %446, %ENDIF139 ] + %temp88.0 = phi float [ 0.000000e+00, %IF137 ], [ %437, %ENDIF139 ] %temp92.0 = phi float [ 1.000000e+00, %IF137 ], [ %.temp92.0, %ENDIF139 ] - %temp96.0 = phi float [ 0.000000e+00, %IF137 ], [ %477, %ENDIF139 ] - %418 = bitcast float %temp96.0 to i32 - %419 = icmp sge i32 %418, %137 - %420 = sext i1 %419 to i32 - %421 = bitcast i32 %420 to float - %422 = bitcast float %421 to i32 - %423 = icmp ne i32 %422, 0 - br i1 %423, label %IF140, label %ENDIF139 + %temp96.0 = phi float [ 0.000000e+00, %IF137 ], [ %468, %ENDIF139 ] + %409 = bitcast float %temp96.0 to i32 + %410 = icmp sge i32 %409, %137 + %411 = sext i1 %410 to i32 + %412 = bitcast i32 %411 to float + %413 = bitcast float %412 to i32 + %414 = icmp ne i32 %413, 0 + br i1 %414, label %IF140, label %ENDIF139 IF140: ; preds = %LOOP - %424 = fmul float %133, 5.000000e-01 - %425 = fmul float %129, %temp92.0 - %426 = fadd float %425, %22 - %427 = fmul float %130, %temp92.0 - %428 = fadd float %427, %23 - %429 = insertelement <4 x float> undef, float %426, i32 0 - %430 = insertelement <4 x float> %429, float %428, i32 1 - %431 = insertelement <4 x float> %430, float 0.000000e+00, i32 2 - %432 = insertelement <4 x float> %431, float 0.000000e+00, i32 3 - %433 = extractelement <4 x float> %432, i32 0 - %434 = extractelement <4 x float> %432, i32 1 - %435 = insertelement <4 x float> undef, float %433, i32 0 - %436 = insertelement <4 x float> %435, float %434, i32 1 - %437 = insertelement <4 x float> %436, float undef, i32 2 - %438 = insertelement <4 x float> %437, float undef, i32 3 - %439 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %438, i32 20, i32 4, i32 2) - %440 = extractelement <4 x float> %439, i32 3 - %441 = fcmp oge float %temp92.0, %440 - %442 = sext i1 %441 to i32 - %443 = bitcast i32 %442 to float - %444 = bitcast float %443 to i32 - %445 = icmp ne i32 %444, 0 - br i1 %445, label %IF146, label %ENDIF145 + %415 = fmul float %133, 5.000000e-01 + %416 = fmul float %129, %temp92.0 + %417 = fadd float %416, %22 + %418 = fmul float %130, %temp92.0 + %419 = fadd float %418, %23 + %420 = insertelement <4 x float> undef, float %417, i32 0 + %421 = insertelement <4 x float> %420, float %419, i32 1 + %422 = insertelement <4 x float> %421, float 0.000000e+00, i32 2 + %423 = insertelement <4 x float> %422, float 0.000000e+00, i32 3 + %424 = extractelement <4 x float> %423, i32 0 + %425 = extractelement <4 x float> %423, i32 1 + %426 = insertelement <4 x float> undef, float %424, i32 0 + %427 = insertelement <4 x float> %426, float %425, i32 1 + %428 = insertelement <4 x float> %427, float undef, i32 2 + %429 = insertelement <4 x float> %428, float undef, i32 3 + %430 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %429, i32 20, i32 4, i32 2) + %431 = extractelement <4 x float> %430, i32 3 + %432 = fcmp oge float %temp92.0, %431 + %433 = sext i1 %432 to i32 + %434 = bitcast i32 %433 to float + %435 = bitcast float %434 to i32 + %436 = icmp ne i32 %435, 0 + br i1 %436, label %IF146, label %ENDIF145 ENDIF139: ; preds = %LOOP - %446 = fadd float %temp88.0, %133 - %447 = fmul float %129, %446 - %448 = fadd float %447, %22 - %449 = fmul float %130, %446 - %450 = fadd float %449, %23 - %451 = insertelement <4 x float> undef, float %448, i32 0 - %452 = insertelement <4 x float> %451, float %450, i32 1 - %453 = insertelement <4 x float> %452, float 0.000000e+00, i32 2 - %454 = insertelement <4 x float> %453, float 0.000000e+00, i32 3 - %455 = extractelement <4 x float> %454, i32 0 - %456 = extractelement <4 x float> %454, i32 1 - %457 = insertelement <4 x float> undef, float %455, i32 0 - %458 = insertelement <4 x float> %457, float %456, i32 1 - %459 = insertelement <4 x float> %458, float undef, i32 2 - %460 = insertelement <4 x float> %459, float undef, i32 3 - %461 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %460, i32 20, i32 4, i32 2) - %462 = extractelement <4 x float> %461, i32 3 - %463 = fcmp olt float 0x3FEFDF3B60000000, %temp92.0 - %464 = sext i1 %463 to i32 - %465 = bitcast i32 %464 to float - %466 = fcmp oge float %446, %462 - %467 = sext i1 %466 to i32 + %437 = fadd float %temp88.0, %133 + %438 = fmul float %129, %437 + %439 = fadd float %438, %22 + %440 = fmul float %130, %437 + %441 = fadd float %440, %23 + %442 = insertelement <4 x float> undef, float %439, i32 0 + %443 = insertelement <4 x float> %442, float %441, i32 1 + %444 = insertelement <4 x float> %443, float 0.000000e+00, i32 2 + %445 = insertelement <4 x float> %444, float 0.000000e+00, i32 3 + %446 = extractelement <4 x float> %445, i32 0 + %447 = extractelement <4 x float> %445, i32 1 + %448 = insertelement <4 x float> undef, float %446, i32 0 + %449 = insertelement <4 x float> %448, float %447, i32 1 + %450 = insertelement <4 x float> %449, float undef, i32 2 + %451 = insertelement <4 x float> %450, float undef, i32 3 + %452 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %451, i32 20, i32 4, i32 2) + %453 = extractelement <4 x float> %452, i32 3 + %454 = fcmp olt float 0x3FEFDF3B60000000, %temp92.0 + %455 = sext i1 %454 to i32 + %456 = bitcast i32 %455 to float + %457 = fcmp oge float %437, %453 + %458 = sext i1 %457 to i32 + %459 = bitcast i32 %458 to float + %460 = bitcast float %456 to i32 + %461 = bitcast float %459 to i32 + %462 = and i32 %460, %461 + %463 = bitcast i32 %462 to float + %464 = bitcast float %463 to i32 + %465 = icmp ne i32 %464, 0 + %.temp92.0 = select i1 %465, float %437, float %temp92.0 + %466 = bitcast float %temp96.0 to i32 + %467 = add i32 %466, 1 %468 = bitcast i32 %467 to float - %469 = bitcast float %465 to i32 - %470 = bitcast float %468 to i32 - %471 = and i32 %469, %470 - %472 = bitcast i32 %471 to float - %473 = bitcast float %472 to i32 - %474 = icmp ne i32 %473, 0 - %.temp92.0 = select i1 %474, float %446, float %temp92.0 - %475 = bitcast float %temp96.0 to i32 - %476 = add i32 %475, 1 - %477 = bitcast i32 %476 to float br label %LOOP IF146: ; preds = %IF140 - %478 = fmul float 2.000000e+00, %424 - %479 = fsub float -0.000000e+00, %478 - %480 = fadd float %temp92.0, %479 + %469 = fmul float 2.000000e+00, %415 + %470 = fsub float -0.000000e+00, %469 + %471 = fadd float %temp92.0, %470 br label %ENDIF145 -ENDIF145: ; preds = %IF140, %IF146 - %temp88.1 = phi float [ %480, %IF146 ], [ %temp92.0, %IF140 ] - %481 = fadd float %temp88.1, %424 - %482 = fmul float %424, 5.000000e-01 - %483 = fmul float %129, %481 - %484 = fadd float %483, %22 - %485 = fmul float %130, %481 - %486 = fadd float %485, %23 - %487 = insertelement <4 x float> undef, float %484, i32 0 - %488 = insertelement <4 x float> %487, float %486, i32 1 - %489 = insertelement <4 x float> %488, float 0.000000e+00, i32 2 - %490 = insertelement <4 x float> %489, float %440, i32 3 - %491 = extractelement <4 x float> %490, i32 0 - %492 = extractelement <4 x float> %490, i32 1 - %493 = insertelement <4 x float> undef, float %491, i32 0 - %494 = insertelement <4 x float> %493, float %492, i32 1 - %495 = insertelement <4 x float> %494, float undef, i32 2 - %496 = insertelement <4 x float> %495, float undef, i32 3 - %497 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %496, i32 20, i32 4, i32 2) - %498 = extractelement <4 x float> %497, i32 3 - %499 = fcmp oge float %481, %498 - %500 = sext i1 %499 to i32 - %501 = bitcast i32 %500 to float - %502 = bitcast float %501 to i32 - %503 = icmp ne i32 %502, 0 - br i1 %503, label %IF149, label %ENDIF148 +ENDIF145: ; preds = %IF146, %IF140 + %temp88.1 = phi float [ %471, %IF146 ], [ %temp92.0, %IF140 ] + %472 = fadd float %temp88.1, %415 + %473 = fmul float %415, 5.000000e-01 + %474 = fmul float %129, %472 + %475 = fadd float %474, %22 + %476 = fmul float %130, %472 + %477 = fadd float %476, %23 + %478 = insertelement <4 x float> undef, float %475, i32 0 + %479 = insertelement <4 x float> %478, float %477, i32 1 + %480 = insertelement <4 x float> %479, float 0.000000e+00, i32 2 + %481 = insertelement <4 x float> %480, float %431, i32 3 + %482 = extractelement <4 x float> %481, i32 0 + %483 = extractelement <4 x float> %481, i32 1 + %484 = insertelement <4 x float> undef, float %482, i32 0 + %485 = insertelement <4 x float> %484, float %483, i32 1 + %486 = insertelement <4 x float> %485, float undef, i32 2 + %487 = insertelement <4 x float> %486, float undef, i32 3 + %488 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %487, i32 20, i32 4, i32 2) + %489 = extractelement <4 x float> %488, i32 3 + %490 = fcmp oge float %472, %489 + %491 = sext i1 %490 to i32 + %492 = bitcast i32 %491 to float + %493 = bitcast float %492 to i32 + %494 = icmp ne i32 %493, 0 + br i1 %494, label %IF149, label %ENDIF148 IF149: ; preds = %ENDIF145 - %504 = fmul float 2.000000e+00, %482 - %505 = fsub float -0.000000e+00, %504 - %506 = fadd float %481, %505 + %495 = fmul float 2.000000e+00, %473 + %496 = fsub float -0.000000e+00, %495 + %497 = fadd float %472, %496 br label %ENDIF148 -ENDIF148: ; preds = %ENDIF145, %IF149 - %temp88.2 = phi float [ %506, %IF149 ], [ %481, %ENDIF145 ] - %temp92.2 = phi float [ %481, %IF149 ], [ %temp92.0, %ENDIF145 ] - %507 = fadd float %temp88.2, %482 - %508 = fmul float %482, 5.000000e-01 - %509 = fmul float %129, %507 - %510 = fadd float %509, %22 - %511 = fmul float %130, %507 - %512 = fadd float %511, %23 - %513 = insertelement <4 x float> undef, float %510, i32 0 - %514 = insertelement <4 x float> %513, float %512, i32 1 - %515 = insertelement <4 x float> %514, float 0.000000e+00, i32 2 - %516 = insertelement <4 x float> %515, float %498, i32 3 - %517 = extractelement <4 x float> %516, i32 0 - %518 = extractelement <4 x float> %516, i32 1 - %519 = insertelement <4 x float> undef, float %517, i32 0 - %520 = insertelement <4 x float> %519, float %518, i32 1 - %521 = insertelement <4 x float> %520, float undef, i32 2 - %522 = insertelement <4 x float> %521, float undef, i32 3 - %523 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %522, i32 20, i32 4, i32 2) - %524 = extractelement <4 x float> %523, i32 3 - %525 = fcmp oge float %507, %524 - %526 = sext i1 %525 to i32 - %527 = bitcast i32 %526 to float - %528 = bitcast float %527 to i32 - %529 = icmp ne i32 %528, 0 - br i1 %529, label %IF152, label %ENDIF151 +ENDIF148: ; preds = %IF149, %ENDIF145 + %temp88.2 = phi float [ %497, %IF149 ], [ %472, %ENDIF145 ] + %temp92.2 = phi float [ %472, %IF149 ], [ %temp92.0, %ENDIF145 ] + %498 = fadd float %temp88.2, %473 + %499 = fmul float %473, 5.000000e-01 + %500 = fmul float %129, %498 + %501 = fadd float %500, %22 + %502 = fmul float %130, %498 + %503 = fadd float %502, %23 + %504 = insertelement <4 x float> undef, float %501, i32 0 + %505 = insertelement <4 x float> %504, float %503, i32 1 + %506 = insertelement <4 x float> %505, float 0.000000e+00, i32 2 + %507 = insertelement <4 x float> %506, float %489, i32 3 + %508 = extractelement <4 x float> %507, i32 0 + %509 = extractelement <4 x float> %507, i32 1 + %510 = insertelement <4 x float> undef, float %508, i32 0 + %511 = insertelement <4 x float> %510, float %509, i32 1 + %512 = insertelement <4 x float> %511, float undef, i32 2 + %513 = insertelement <4 x float> %512, float undef, i32 3 + %514 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %513, i32 20, i32 4, i32 2) + %515 = extractelement <4 x float> %514, i32 3 + %516 = fcmp oge float %498, %515 + %517 = sext i1 %516 to i32 + %518 = bitcast i32 %517 to float + %519 = bitcast float %518 to i32 + %520 = icmp ne i32 %519, 0 + br i1 %520, label %IF152, label %ENDIF151 IF152: ; preds = %ENDIF148 - %530 = fmul float 2.000000e+00, %508 - %531 = fsub float -0.000000e+00, %530 - %532 = fadd float %507, %531 + %521 = fmul float 2.000000e+00, %499 + %522 = fsub float -0.000000e+00, %521 + %523 = fadd float %498, %522 br label %ENDIF151 -ENDIF151: ; preds = %ENDIF148, %IF152 - %temp88.3 = phi float [ %532, %IF152 ], [ %507, %ENDIF148 ] - %temp92.3 = phi float [ %507, %IF152 ], [ %temp92.2, %ENDIF148 ] - %533 = fadd float %temp88.3, %508 - %534 = fmul float %508, 5.000000e-01 - %535 = fmul float %129, %533 - %536 = fadd float %535, %22 - %537 = fmul float %130, %533 - %538 = fadd float %537, %23 - %539 = insertelement <4 x float> undef, float %536, i32 0 - %540 = insertelement <4 x float> %539, float %538, i32 1 - %541 = insertelement <4 x float> %540, float 0.000000e+00, i32 2 - %542 = insertelement <4 x float> %541, float %524, i32 3 - %543 = extractelement <4 x float> %542, i32 0 - %544 = extractelement <4 x float> %542, i32 1 - %545 = insertelement <4 x float> undef, float %543, i32 0 - %546 = insertelement <4 x float> %545, float %544, i32 1 - %547 = insertelement <4 x float> %546, float undef, i32 2 - %548 = insertelement <4 x float> %547, float undef, i32 3 - %549 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %548, i32 20, i32 4, i32 2) - %550 = extractelement <4 x float> %549, i32 3 - %551 = fcmp oge float %533, %550 - %552 = sext i1 %551 to i32 - %553 = bitcast i32 %552 to float - %554 = bitcast float %553 to i32 - %555 = icmp ne i32 %554, 0 - br i1 %555, label %IF155, label %ENDIF154 +ENDIF151: ; preds = %IF152, %ENDIF148 + %temp88.3 = phi float [ %523, %IF152 ], [ %498, %ENDIF148 ] + %temp92.3 = phi float [ %498, %IF152 ], [ %temp92.2, %ENDIF148 ] + %524 = fadd float %temp88.3, %499 + %525 = fmul float %499, 5.000000e-01 + %526 = fmul float %129, %524 + %527 = fadd float %526, %22 + %528 = fmul float %130, %524 + %529 = fadd float %528, %23 + %530 = insertelement <4 x float> undef, float %527, i32 0 + %531 = insertelement <4 x float> %530, float %529, i32 1 + %532 = insertelement <4 x float> %531, float 0.000000e+00, i32 2 + %533 = insertelement <4 x float> %532, float %515, i32 3 + %534 = extractelement <4 x float> %533, i32 0 + %535 = extractelement <4 x float> %533, i32 1 + %536 = insertelement <4 x float> undef, float %534, i32 0 + %537 = insertelement <4 x float> %536, float %535, i32 1 + %538 = insertelement <4 x float> %537, float undef, i32 2 + %539 = insertelement <4 x float> %538, float undef, i32 3 + %540 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %539, i32 20, i32 4, i32 2) + %541 = extractelement <4 x float> %540, i32 3 + %542 = fcmp oge float %524, %541 + %543 = sext i1 %542 to i32 + %544 = bitcast i32 %543 to float + %545 = bitcast float %544 to i32 + %546 = icmp ne i32 %545, 0 + br i1 %546, label %IF155, label %ENDIF154 IF155: ; preds = %ENDIF151 - %556 = fmul float 2.000000e+00, %534 - %557 = fsub float -0.000000e+00, %556 - %558 = fadd float %533, %557 + %547 = fmul float 2.000000e+00, %525 + %548 = fsub float -0.000000e+00, %547 + %549 = fadd float %524, %548 br label %ENDIF154 -ENDIF154: ; preds = %ENDIF151, %IF155 - %temp88.4 = phi float [ %558, %IF155 ], [ %533, %ENDIF151 ] - %temp92.4 = phi float [ %533, %IF155 ], [ %temp92.3, %ENDIF151 ] - %559 = fadd float %temp88.4, %534 - %560 = fmul float %129, %559 - %561 = fadd float %560, %22 - %562 = fmul float %130, %559 - %563 = fadd float %562, %23 - %564 = insertelement <4 x float> undef, float %561, i32 0 - %565 = insertelement <4 x float> %564, float %563, i32 1 - %566 = insertelement <4 x float> %565, float 0.000000e+00, i32 2 - %567 = insertelement <4 x float> %566, float %550, i32 3 - %568 = extractelement <4 x float> %567, i32 0 - %569 = extractelement <4 x float> %567, i32 1 - %570 = insertelement <4 x float> undef, float %568, i32 0 - %571 = insertelement <4 x float> %570, float %569, i32 1 - %572 = insertelement <4 x float> %571, float undef, i32 2 - %573 = insertelement <4 x float> %572, float undef, i32 3 - %574 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %573, i32 20, i32 4, i32 2) - %575 = extractelement <4 x float> %574, i32 3 - %576 = fcmp oge float %559, %575 - %577 = sext i1 %576 to i32 - %578 = bitcast i32 %577 to float - %579 = bitcast float %578 to i32 - %580 = icmp ne i32 %579, 0 - %.temp92.4 = select i1 %580, float %559, float %temp92.4 - %581 = fmul float %129, %.temp92.4 - %582 = fadd float %581, %22 - %583 = fmul float %130, %.temp92.4 - %584 = fadd float %583, %23 - %585 = insertelement <4 x float> undef, float %582, i32 0 - %586 = insertelement <4 x float> %585, float %584, i32 1 - %587 = insertelement <4 x float> %586, float 0.000000e+00, i32 2 - %588 = insertelement <4 x float> %587, float %575, i32 3 - %589 = extractelement <4 x float> %588, i32 0 - %590 = extractelement <4 x float> %588, i32 1 - %591 = insertelement <4 x float> undef, float %589, i32 0 - %592 = insertelement <4 x float> %591, float %590, i32 1 - %593 = insertelement <4 x float> %592, float undef, i32 2 - %594 = insertelement <4 x float> %593, float undef, i32 3 - %595 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %594, i32 20, i32 4, i32 2) - %596 = extractelement <4 x float> %595, i32 0 - %597 = extractelement <4 x float> %595, i32 1 - %598 = extractelement <4 x float> %595, i32 2 - %599 = fmul float %596, 2.000000e+00 - %600 = fadd float %599, -1.000000e+00 - %601 = fmul float %597, 2.000000e+00 - %602 = fadd float %601, -1.000000e+00 - %603 = fmul float %598, 2.000000e+00 - %604 = fadd float %603, -1.000000e+00 +ENDIF154: ; preds = %IF155, %ENDIF151 + %temp88.4 = phi float [ %549, %IF155 ], [ %524, %ENDIF151 ] + %temp92.4 = phi float [ %524, %IF155 ], [ %temp92.3, %ENDIF151 ] + %550 = fadd float %temp88.4, %525 + %551 = fmul float %129, %550 + %552 = fadd float %551, %22 + %553 = fmul float %130, %550 + %554 = fadd float %553, %23 + %555 = insertelement <4 x float> undef, float %552, i32 0 + %556 = insertelement <4 x float> %555, float %554, i32 1 + %557 = insertelement <4 x float> %556, float 0.000000e+00, i32 2 + %558 = insertelement <4 x float> %557, float %541, i32 3 + %559 = extractelement <4 x float> %558, i32 0 + %560 = extractelement <4 x float> %558, i32 1 + %561 = insertelement <4 x float> undef, float %559, i32 0 + %562 = insertelement <4 x float> %561, float %560, i32 1 + %563 = insertelement <4 x float> %562, float undef, i32 2 + %564 = insertelement <4 x float> %563, float undef, i32 3 + %565 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %564, i32 20, i32 4, i32 2) + %566 = extractelement <4 x float> %565, i32 3 + %567 = fcmp oge float %550, %566 + %568 = sext i1 %567 to i32 + %569 = bitcast i32 %568 to float + %570 = bitcast float %569 to i32 + %571 = icmp ne i32 %570, 0 + %.temp92.4 = select i1 %571, float %550, float %temp92.4 + %572 = fmul float %129, %.temp92.4 + %573 = fadd float %572, %22 + %574 = fmul float %130, %.temp92.4 + %575 = fadd float %574, %23 + %576 = insertelement <4 x float> undef, float %573, i32 0 + %577 = insertelement <4 x float> %576, float %575, i32 1 + %578 = insertelement <4 x float> %577, float 0.000000e+00, i32 2 + %579 = insertelement <4 x float> %578, float %566, i32 3 + %580 = extractelement <4 x float> %579, i32 0 + %581 = extractelement <4 x float> %579, i32 1 + %582 = insertelement <4 x float> undef, float %580, i32 0 + %583 = insertelement <4 x float> %582, float %581, i32 1 + %584 = insertelement <4 x float> %583, float undef, i32 2 + %585 = insertelement <4 x float> %584, float undef, i32 3 + %586 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %585, i32 20, i32 4, i32 2) + %587 = extractelement <4 x float> %586, i32 0 + %588 = extractelement <4 x float> %586, i32 1 + %589 = extractelement <4 x float> %586, i32 2 + %590 = fmul float %587, 2.000000e+00 + %591 = fadd float %590, -1.000000e+00 + %592 = fmul float %588, 2.000000e+00 + %593 = fadd float %592, -1.000000e+00 + %594 = fmul float %589, 2.000000e+00 + %595 = fadd float %594, -1.000000e+00 br label %ENDIF136 IF161: ; preds = %ENDIF136 - %605 = fmul float %202, 0x3FB99999A0000000 - %606 = fcmp uge float 0x3FE4CCCCC0000000, %605 - %607 = select i1 %606, float 0x3FE4CCCCC0000000, float %605 - %608 = fcmp uge float %607, 5.000000e-01 - %609 = select i1 %608, float 5.000000e-01, float %607 - %610 = call float @llvm.AMDGPU.lrp(float %609, float %400, float %300) - %611 = call float @llvm.AMDGPU.lrp(float %609, float %401, float %301) - %612 = call float @llvm.AMDGPU.lrp(float %609, float %402, float %302) - %613 = call float @llvm.AMDGPU.lrp(float %609, float %403, float %303) - %614 = insertelement <4 x float> undef, float %329, i32 0 - %615 = insertelement <4 x float> %614, float %330, i32 1 - %616 = insertelement <4 x float> %615, float %331, i32 2 - %617 = insertelement <4 x float> %616, float 0.000000e+00, i32 3 - %618 = insertelement <4 x float> undef, float %63, i32 0 - %619 = insertelement <4 x float> %618, float %65, i32 1 - %620 = insertelement <4 x float> %619, float %67, i32 2 - %621 = insertelement <4 x float> %620, float 0.000000e+00, i32 3 - %622 = call float @llvm.AMDGPU.dp4(<4 x float> %617, <4 x float> %621) - %623 = fcmp uge float 0x3FE6666660000000, %622 - %624 = select i1 %623, float 0x3FE6666660000000, float %622 - %625 = fmul float %8, %624 - %626 = fmul float %13, %624 - %627 = fmul float %18, %624 - %628 = insertelement <4 x float> undef, float %34, i32 0 - %629 = insertelement <4 x float> %628, float %35, i32 1 - %630 = insertelement <4 x float> %629, float %36, i32 2 - %631 = insertelement <4 x float> %630, float 0.000000e+00, i32 3 - %632 = insertelement <4 x float> undef, float %63, i32 0 - %633 = insertelement <4 x float> %632, float %65, i32 1 - %634 = insertelement <4 x float> %633, float %67, i32 2 - %635 = insertelement <4 x float> %634, float 0.000000e+00, i32 3 - %636 = call float @llvm.AMDGPU.dp4(<4 x float> %631, <4 x float> %635) - %637 = fcmp uge float 0x3FECCCCCC0000000, %636 - %638 = select i1 %637, float 0x3FECCCCCC0000000, float %636 - %639 = fmul float %625, %638 - %640 = fmul float %626, %638 - %641 = fmul float %627, %638 + %596 = fmul float %result.i, 0x3FB99999A0000000 + %597 = fcmp uge float 0x3FE4CCCCC0000000, %596 + %598 = select i1 %597, float 0x3FE4CCCCC0000000, float %596 + %599 = fcmp uge float %598, 5.000000e-01 + %600 = select i1 %599, float 5.000000e-01, float %598 + %one.sub.a.i137 = fsub float 1.000000e+00, %600 + %one.sub.ac.i138 = fmul float %one.sub.a.i137, %299 + %mul.i139 = fmul float %result.i172, %299 + %result.i140 = fadd float %mul.i139, %one.sub.ac.i138 + %one.sub.a.i133 = fsub float 1.000000e+00, %600 + %one.sub.ac.i134 = fmul float %one.sub.a.i133, %300 + %mul.i135 = fmul float %result.i168, %300 + %result.i136 = fadd float %mul.i135, %one.sub.ac.i134 + %one.sub.a.i129 = fsub float 1.000000e+00, %600 + %one.sub.ac.i130 = fmul float %one.sub.a.i129, %301 + %mul.i131 = fmul float %result.i164, %301 + %result.i132 = fadd float %mul.i131, %one.sub.ac.i130 + %one.sub.a.i125 = fsub float 1.000000e+00, %600 + %one.sub.ac.i126 = fmul float %one.sub.a.i125, %302 + %mul.i127 = fmul float %result.i160, %302 + %result.i128 = fadd float %mul.i127, %one.sub.ac.i126 + %601 = insertelement <4 x float> undef, float %328, i32 0 + %602 = insertelement <4 x float> %601, float %329, i32 1 + %603 = insertelement <4 x float> %602, float %330, i32 2 + %604 = insertelement <4 x float> %603, float 0.000000e+00, i32 3 + %605 = insertelement <4 x float> undef, float %63, i32 0 + %606 = insertelement <4 x float> %605, float %65, i32 1 + %607 = insertelement <4 x float> %606, float %67, i32 2 + %608 = insertelement <4 x float> %607, float 0.000000e+00, i32 3 + %609 = call float @llvm.AMDGPU.dp4(<4 x float> %604, <4 x float> %608) + %610 = fcmp uge float 0x3FE6666660000000, %609 + %611 = select i1 %610, float 0x3FE6666660000000, float %609 + %612 = fmul float %8, %611 + %613 = fmul float %13, %611 + %614 = fmul float %18, %611 + %615 = insertelement <4 x float> undef, float %34, i32 0 + %616 = insertelement <4 x float> %615, float %35, i32 1 + %617 = insertelement <4 x float> %616, float %36, i32 2 + %618 = insertelement <4 x float> %617, float 0.000000e+00, i32 3 + %619 = insertelement <4 x float> undef, float %63, i32 0 + %620 = insertelement <4 x float> %619, float %65, i32 1 + %621 = insertelement <4 x float> %620, float %67, i32 2 + %622 = insertelement <4 x float> %621, float 0.000000e+00, i32 3 + %623 = call float @llvm.AMDGPU.dp4(<4 x float> %618, <4 x float> %622) + %624 = fcmp uge float 0x3FECCCCCC0000000, %623 + %625 = select i1 %624, float 0x3FECCCCCC0000000, float %623 + %626 = fmul float %612, %625 + %627 = fmul float %613, %625 + %628 = fmul float %614, %625 br label %ENDIF160 -ENDIF160: ; preds = %ENDIF136, %IF161 - %temp84.0 = phi float [ %610, %IF161 ], [ %255, %ENDIF136 ] - %temp85.0 = phi float [ %611, %IF161 ], [ %256, %ENDIF136 ] - %temp86.0 = phi float [ %612, %IF161 ], [ %257, %ENDIF136 ] - %temp87.0 = phi float [ %613, %IF161 ], [ %258, %ENDIF136 ] - %temp92.6 = phi float [ %639, %IF161 ], [ %415, %ENDIF136 ] - %temp93.0 = phi float [ %640, %IF161 ], [ 0.000000e+00, %ENDIF136 ] - %temp94.0 = phi float [ %641, %IF161 ], [ 0.000000e+00, %ENDIF136 ] - %642 = fcmp olt float 2.200000e+03, %179 - %643 = sext i1 %642 to i32 - %644 = bitcast i32 %643 to float - %645 = fcmp olt float %179, 2.300000e+03 - %646 = sext i1 %645 to i32 - %647 = bitcast i32 %646 to float - %648 = bitcast float %644 to i32 - %649 = bitcast float %647 to i32 - %650 = and i32 %648, %649 - %651 = bitcast i32 %650 to float - %652 = bitcast float %651 to i32 - %653 = icmp ne i32 %652, 0 - br i1 %653, label %IF164, label %ENDIF163 +ENDIF160: ; preds = %IF161, %ENDIF136 + %temp84.0 = phi float [ %result.i140, %IF161 ], [ %254, %ENDIF136 ] + %temp85.0 = phi float [ %result.i136, %IF161 ], [ %255, %ENDIF136 ] + %temp86.0 = phi float [ %result.i132, %IF161 ], [ %256, %ENDIF136 ] + %temp87.0 = phi float [ %result.i128, %IF161 ], [ %257, %ENDIF136 ] + %temp92.6 = phi float [ %626, %IF161 ], [ %406, %ENDIF136 ] + %temp93.0 = phi float [ %627, %IF161 ], [ 0.000000e+00, %ENDIF136 ] + %temp94.0 = phi float [ %628, %IF161 ], [ 0.000000e+00, %ENDIF136 ] + %629 = fcmp olt float 2.200000e+03, %179 + %630 = sext i1 %629 to i32 + %631 = bitcast i32 %630 to float + %632 = fcmp olt float %179, 2.300000e+03 + %633 = sext i1 %632 to i32 + %634 = bitcast i32 %633 to float + %635 = bitcast float %631 to i32 + %636 = bitcast float %634 to i32 + %637 = and i32 %635, %636 + %638 = bitcast i32 %637 to float + %639 = bitcast float %638 to i32 + %640 = icmp ne i32 %639, 0 + br i1 %640, label %IF164, label %ENDIF163 IF164: ; preds = %ENDIF160 - %654 = fmul float %202, 5.000000e-01 - %655 = fcmp uge float 0x3FE4CCCCC0000000, %654 - %656 = select i1 %655, float 0x3FE4CCCCC0000000, float %654 - %657 = fcmp uge float %656, 0x3FD6666660000000 - %658 = select i1 %657, float 0x3FD6666660000000, float %656 - %659 = call float @llvm.AMDGPU.lrp(float %658, float %400, float %300) - %660 = call float @llvm.AMDGPU.lrp(float %658, float %401, float %301) - %661 = call float @llvm.AMDGPU.lrp(float %658, float %402, float %302) - %662 = call float @llvm.AMDGPU.lrp(float %658, float %403, float %303) - %663 = insertelement <4 x float> undef, float %329, i32 0 - %664 = insertelement <4 x float> %663, float %330, i32 1 - %665 = insertelement <4 x float> %664, float %331, i32 2 - %666 = insertelement <4 x float> %665, float 0.000000e+00, i32 3 - %667 = insertelement <4 x float> undef, float %63, i32 0 - %668 = insertelement <4 x float> %667, float %65, i32 1 - %669 = insertelement <4 x float> %668, float %67, i32 2 - %670 = insertelement <4 x float> %669, float 0.000000e+00, i32 3 - %671 = call float @llvm.AMDGPU.dp4(<4 x float> %666, <4 x float> %670) - %672 = fcmp uge float 0x3FE6666660000000, %671 - %673 = select i1 %672, float 0x3FE6666660000000, float %671 - %674 = fmul float %8, %673 - %675 = fmul float %13, %673 - %676 = fmul float %18, %673 - %677 = insertelement <4 x float> undef, float %34, i32 0 - %678 = insertelement <4 x float> %677, float %35, i32 1 - %679 = insertelement <4 x float> %678, float %36, i32 2 - %680 = insertelement <4 x float> %679, float 0.000000e+00, i32 3 - %681 = insertelement <4 x float> undef, float %63, i32 0 - %682 = insertelement <4 x float> %681, float %65, i32 1 - %683 = insertelement <4 x float> %682, float %67, i32 2 - %684 = insertelement <4 x float> %683, float 0.000000e+00, i32 3 - %685 = call float @llvm.AMDGPU.dp4(<4 x float> %680, <4 x float> %684) - %686 = fcmp uge float 0x3FECCCCCC0000000, %685 - %687 = select i1 %686, float 0x3FECCCCCC0000000, float %685 - %688 = fmul float %674, %687 - %689 = fmul float %675, %687 - %690 = fmul float %676, %687 + %641 = fmul float %result.i, 5.000000e-01 + %642 = fcmp uge float 0x3FE4CCCCC0000000, %641 + %643 = select i1 %642, float 0x3FE4CCCCC0000000, float %641 + %644 = fcmp uge float %643, 0x3FD6666660000000 + %645 = select i1 %644, float 0x3FD6666660000000, float %643 + %one.sub.a.i121 = fsub float 1.000000e+00, %645 + %one.sub.ac.i122 = fmul float %one.sub.a.i121, %299 + %mul.i123 = fmul float %result.i172, %299 + %result.i124 = fadd float %mul.i123, %one.sub.ac.i122 + %one.sub.a.i117 = fsub float 1.000000e+00, %645 + %one.sub.ac.i118 = fmul float %one.sub.a.i117, %300 + %mul.i119 = fmul float %result.i168, %300 + %result.i120 = fadd float %mul.i119, %one.sub.ac.i118 + %one.sub.a.i113 = fsub float 1.000000e+00, %645 + %one.sub.ac.i114 = fmul float %one.sub.a.i113, %301 + %mul.i115 = fmul float %result.i164, %301 + %result.i116 = fadd float %mul.i115, %one.sub.ac.i114 + %one.sub.a.i109 = fsub float 1.000000e+00, %645 + %one.sub.ac.i110 = fmul float %one.sub.a.i109, %302 + %mul.i111 = fmul float %result.i160, %302 + %result.i112 = fadd float %mul.i111, %one.sub.ac.i110 + %646 = insertelement <4 x float> undef, float %328, i32 0 + %647 = insertelement <4 x float> %646, float %329, i32 1 + %648 = insertelement <4 x float> %647, float %330, i32 2 + %649 = insertelement <4 x float> %648, float 0.000000e+00, i32 3 + %650 = insertelement <4 x float> undef, float %63, i32 0 + %651 = insertelement <4 x float> %650, float %65, i32 1 + %652 = insertelement <4 x float> %651, float %67, i32 2 + %653 = insertelement <4 x float> %652, float 0.000000e+00, i32 3 + %654 = call float @llvm.AMDGPU.dp4(<4 x float> %649, <4 x float> %653) + %655 = fcmp uge float 0x3FE6666660000000, %654 + %656 = select i1 %655, float 0x3FE6666660000000, float %654 + %657 = fmul float %8, %656 + %658 = fmul float %13, %656 + %659 = fmul float %18, %656 + %660 = insertelement <4 x float> undef, float %34, i32 0 + %661 = insertelement <4 x float> %660, float %35, i32 1 + %662 = insertelement <4 x float> %661, float %36, i32 2 + %663 = insertelement <4 x float> %662, float 0.000000e+00, i32 3 + %664 = insertelement <4 x float> undef, float %63, i32 0 + %665 = insertelement <4 x float> %664, float %65, i32 1 + %666 = insertelement <4 x float> %665, float %67, i32 2 + %667 = insertelement <4 x float> %666, float 0.000000e+00, i32 3 + %668 = call float @llvm.AMDGPU.dp4(<4 x float> %663, <4 x float> %667) + %669 = fcmp uge float 0x3FECCCCCC0000000, %668 + %670 = select i1 %669, float 0x3FECCCCCC0000000, float %668 + %671 = fmul float %657, %670 + %672 = fmul float %658, %670 + %673 = fmul float %659, %670 br label %ENDIF163 -ENDIF163: ; preds = %ENDIF160, %IF164 - %temp84.1 = phi float [ %659, %IF164 ], [ %temp84.0, %ENDIF160 ] - %temp85.1 = phi float [ %660, %IF164 ], [ %temp85.0, %ENDIF160 ] - %temp86.1 = phi float [ %661, %IF164 ], [ %temp86.0, %ENDIF160 ] - %temp87.1 = phi float [ %662, %IF164 ], [ %temp87.0, %ENDIF160 ] - %temp92.7 = phi float [ %688, %IF164 ], [ %temp92.6, %ENDIF160 ] - %temp93.1 = phi float [ %689, %IF164 ], [ %temp93.0, %ENDIF160 ] - %temp94.1 = phi float [ %690, %IF164 ], [ %temp94.0, %ENDIF160 ] - %691 = fcmp oge float %179, 2.300000e+03 - %692 = sext i1 %691 to i32 - %693 = bitcast i32 %692 to float - %694 = fcmp olt float %179, 2.480000e+03 - %695 = sext i1 %694 to i32 - %696 = bitcast i32 %695 to float - %697 = bitcast float %693 to i32 - %698 = bitcast float %696 to i32 - %699 = and i32 %697, %698 - %700 = bitcast i32 %699 to float - %701 = bitcast float %700 to i32 - %702 = icmp ne i32 %701, 0 - br i1 %702, label %IF167, label %ENDIF166 +ENDIF163: ; preds = %IF164, %ENDIF160 + %temp84.1 = phi float [ %result.i124, %IF164 ], [ %temp84.0, %ENDIF160 ] + %temp85.1 = phi float [ %result.i120, %IF164 ], [ %temp85.0, %ENDIF160 ] + %temp86.1 = phi float [ %result.i116, %IF164 ], [ %temp86.0, %ENDIF160 ] + %temp87.1 = phi float [ %result.i112, %IF164 ], [ %temp87.0, %ENDIF160 ] + %temp92.7 = phi float [ %671, %IF164 ], [ %temp92.6, %ENDIF160 ] + %temp93.1 = phi float [ %672, %IF164 ], [ %temp93.0, %ENDIF160 ] + %temp94.1 = phi float [ %673, %IF164 ], [ %temp94.0, %ENDIF160 ] + %674 = fcmp oge float %179, 2.300000e+03 + %675 = sext i1 %674 to i32 + %676 = bitcast i32 %675 to float + %677 = fcmp olt float %179, 2.480000e+03 + %678 = sext i1 %677 to i32 + %679 = bitcast i32 %678 to float + %680 = bitcast float %676 to i32 + %681 = bitcast float %679 to i32 + %682 = and i32 %680, %681 + %683 = bitcast i32 %682 to float + %684 = bitcast float %683 to i32 + %685 = icmp ne i32 %684, 0 + br i1 %685, label %IF167, label %ENDIF166 IF167: ; preds = %ENDIF163 - %703 = fmul float %202, 5.000000e-01 - %704 = fcmp uge float 0x3FE4CCCCC0000000, %703 - %705 = select i1 %704, float 0x3FE4CCCCC0000000, float %703 - %706 = fcmp uge float %705, 0x3FD3333340000000 - %707 = select i1 %706, float 0x3FD3333340000000, float %705 - %708 = call float @llvm.AMDGPU.lrp(float %707, float %409, float %300) - %709 = call float @llvm.AMDGPU.lrp(float %707, float %410, float %301) - %710 = call float @llvm.AMDGPU.lrp(float %707, float %411, float %302) - %711 = call float @llvm.AMDGPU.lrp(float %707, float %412, float %303) - %712 = insertelement <4 x float> undef, float %329, i32 0 - %713 = insertelement <4 x float> %712, float %330, i32 1 - %714 = insertelement <4 x float> %713, float %331, i32 2 - %715 = insertelement <4 x float> %714, float 0.000000e+00, i32 3 - %716 = insertelement <4 x float> undef, float %63, i32 0 - %717 = insertelement <4 x float> %716, float %65, i32 1 - %718 = insertelement <4 x float> %717, float %67, i32 2 - %719 = insertelement <4 x float> %718, float 0.000000e+00, i32 3 - %720 = call float @llvm.AMDGPU.dp4(<4 x float> %715, <4 x float> %719) - %721 = fcmp uge float 0x3FEB333340000000, %720 - %722 = select i1 %721, float 0x3FEB333340000000, float %720 - %723 = fmul float %8, %722 - %724 = fmul float %13, %722 - %725 = fmul float %18, %722 - %726 = insertelement <4 x float> undef, float %34, i32 0 - %727 = insertelement <4 x float> %726, float %35, i32 1 - %728 = insertelement <4 x float> %727, float %36, i32 2 - %729 = insertelement <4 x float> %728, float 0.000000e+00, i32 3 - %730 = insertelement <4 x float> undef, float %63, i32 0 - %731 = insertelement <4 x float> %730, float %65, i32 1 - %732 = insertelement <4 x float> %731, float %67, i32 2 - %733 = insertelement <4 x float> %732, float 0.000000e+00, i32 3 - %734 = call float @llvm.AMDGPU.dp4(<4 x float> %729, <4 x float> %733) - %735 = fcmp uge float 0x3FECCCCCC0000000, %734 - %736 = select i1 %735, float 0x3FECCCCCC0000000, float %734 - %737 = fmul float %723, %736 - %738 = fmul float %724, %736 - %739 = fmul float %725, %736 + %686 = fmul float %result.i, 5.000000e-01 + %687 = fcmp uge float 0x3FE4CCCCC0000000, %686 + %688 = select i1 %687, float 0x3FE4CCCCC0000000, float %686 + %689 = fcmp uge float %688, 0x3FD3333340000000 + %690 = select i1 %689, float 0x3FD3333340000000, float %688 + %one.sub.a.i105 = fsub float 1.000000e+00, %690 + %one.sub.ac.i106 = fmul float %one.sub.a.i105, %299 + %mul.i107 = fmul float %result.i156, %299 + %result.i108 = fadd float %mul.i107, %one.sub.ac.i106 + %one.sub.a.i101 = fsub float 1.000000e+00, %690 + %one.sub.ac.i102 = fmul float %one.sub.a.i101, %300 + %mul.i103 = fmul float %result.i152, %300 + %result.i104 = fadd float %mul.i103, %one.sub.ac.i102 + %one.sub.a.i97 = fsub float 1.000000e+00, %690 + %one.sub.ac.i98 = fmul float %one.sub.a.i97, %301 + %mul.i99 = fmul float %result.i148, %301 + %result.i100 = fadd float %mul.i99, %one.sub.ac.i98 + %one.sub.a.i93 = fsub float 1.000000e+00, %690 + %one.sub.ac.i94 = fmul float %one.sub.a.i93, %302 + %mul.i95 = fmul float %result.i144, %302 + %result.i96 = fadd float %mul.i95, %one.sub.ac.i94 + %691 = insertelement <4 x float> undef, float %328, i32 0 + %692 = insertelement <4 x float> %691, float %329, i32 1 + %693 = insertelement <4 x float> %692, float %330, i32 2 + %694 = insertelement <4 x float> %693, float 0.000000e+00, i32 3 + %695 = insertelement <4 x float> undef, float %63, i32 0 + %696 = insertelement <4 x float> %695, float %65, i32 1 + %697 = insertelement <4 x float> %696, float %67, i32 2 + %698 = insertelement <4 x float> %697, float 0.000000e+00, i32 3 + %699 = call float @llvm.AMDGPU.dp4(<4 x float> %694, <4 x float> %698) + %700 = fcmp uge float 0x3FEB333340000000, %699 + %701 = select i1 %700, float 0x3FEB333340000000, float %699 + %702 = fmul float %8, %701 + %703 = fmul float %13, %701 + %704 = fmul float %18, %701 + %705 = insertelement <4 x float> undef, float %34, i32 0 + %706 = insertelement <4 x float> %705, float %35, i32 1 + %707 = insertelement <4 x float> %706, float %36, i32 2 + %708 = insertelement <4 x float> %707, float 0.000000e+00, i32 3 + %709 = insertelement <4 x float> undef, float %63, i32 0 + %710 = insertelement <4 x float> %709, float %65, i32 1 + %711 = insertelement <4 x float> %710, float %67, i32 2 + %712 = insertelement <4 x float> %711, float 0.000000e+00, i32 3 + %713 = call float @llvm.AMDGPU.dp4(<4 x float> %708, <4 x float> %712) + %714 = fcmp uge float 0x3FECCCCCC0000000, %713 + %715 = select i1 %714, float 0x3FECCCCCC0000000, float %713 + %716 = fmul float %702, %715 + %717 = fmul float %703, %715 + %718 = fmul float %704, %715 br label %ENDIF166 -ENDIF166: ; preds = %ENDIF163, %IF167 - %temp84.2 = phi float [ %708, %IF167 ], [ %temp84.1, %ENDIF163 ] - %temp85.2 = phi float [ %709, %IF167 ], [ %temp85.1, %ENDIF163 ] - %temp86.2 = phi float [ %710, %IF167 ], [ %temp86.1, %ENDIF163 ] - %temp87.2 = phi float [ %711, %IF167 ], [ %temp87.1, %ENDIF163 ] - %temp92.8 = phi float [ %737, %IF167 ], [ %temp92.7, %ENDIF163 ] - %temp93.2 = phi float [ %738, %IF167 ], [ %temp93.1, %ENDIF163 ] - %temp94.2 = phi float [ %739, %IF167 ], [ %temp94.1, %ENDIF163 ] - %740 = fcmp oge float %179, 2.480000e+03 - %741 = sext i1 %740 to i32 - %742 = bitcast i32 %741 to float - %743 = fcmp olt float %179, 2.530000e+03 - %744 = sext i1 %743 to i32 - %745 = bitcast i32 %744 to float - %746 = bitcast float %742 to i32 - %747 = bitcast float %745 to i32 - %748 = and i32 %746, %747 - %749 = bitcast i32 %748 to float - %750 = bitcast float %749 to i32 - %751 = icmp ne i32 %750, 0 - br i1 %751, label %IF170, label %ENDIF169 +ENDIF166: ; preds = %IF167, %ENDIF163 + %temp84.2 = phi float [ %result.i108, %IF167 ], [ %temp84.1, %ENDIF163 ] + %temp85.2 = phi float [ %result.i104, %IF167 ], [ %temp85.1, %ENDIF163 ] + %temp86.2 = phi float [ %result.i100, %IF167 ], [ %temp86.1, %ENDIF163 ] + %temp87.2 = phi float [ %result.i96, %IF167 ], [ %temp87.1, %ENDIF163 ] + %temp92.8 = phi float [ %716, %IF167 ], [ %temp92.7, %ENDIF163 ] + %temp93.2 = phi float [ %717, %IF167 ], [ %temp93.1, %ENDIF163 ] + %temp94.2 = phi float [ %718, %IF167 ], [ %temp94.1, %ENDIF163 ] + %719 = fcmp oge float %179, 2.480000e+03 + %720 = sext i1 %719 to i32 + %721 = bitcast i32 %720 to float + %722 = fcmp olt float %179, 2.530000e+03 + %723 = sext i1 %722 to i32 + %724 = bitcast i32 %723 to float + %725 = bitcast float %721 to i32 + %726 = bitcast float %724 to i32 + %727 = and i32 %725, %726 + %728 = bitcast i32 %727 to float + %729 = bitcast float %728 to i32 + %730 = icmp ne i32 %729, 0 + br i1 %730, label %IF170, label %ENDIF169 IF170: ; preds = %ENDIF166 - %752 = fmul float %202, 5.000000e-01 - %753 = fcmp uge float 0x3FE4CCCCC0000000, %752 - %754 = select i1 %753, float 0x3FE4CCCCC0000000, float %752 - %755 = fcmp uge float %754, 0x3FC99999A0000000 - %756 = select i1 %755, float 0x3FC99999A0000000, float %754 - %757 = call float @llvm.AMDGPU.lrp(float %756, float %409, float %300) - %758 = call float @llvm.AMDGPU.lrp(float %756, float %410, float %301) - %759 = call float @llvm.AMDGPU.lrp(float %756, float %411, float %302) - %760 = call float @llvm.AMDGPU.lrp(float %756, float %412, float %303) - %761 = insertelement <4 x float> undef, float %329, i32 0 - %762 = insertelement <4 x float> %761, float %330, i32 1 - %763 = insertelement <4 x float> %762, float %331, i32 2 - %764 = insertelement <4 x float> %763, float 0.000000e+00, i32 3 - %765 = insertelement <4 x float> undef, float %63, i32 0 - %766 = insertelement <4 x float> %765, float %65, i32 1 - %767 = insertelement <4 x float> %766, float %67, i32 2 - %768 = insertelement <4 x float> %767, float 0.000000e+00, i32 3 - %769 = call float @llvm.AMDGPU.dp4(<4 x float> %764, <4 x float> %768) - %770 = fcmp uge float 0x3FEB333340000000, %769 - %771 = select i1 %770, float 0x3FEB333340000000, float %769 - %772 = fmul float %8, %771 - %773 = fmul float %13, %771 - %774 = fmul float %18, %771 - %775 = insertelement <4 x float> undef, float %34, i32 0 - %776 = insertelement <4 x float> %775, float %35, i32 1 - %777 = insertelement <4 x float> %776, float %36, i32 2 - %778 = insertelement <4 x float> %777, float 0.000000e+00, i32 3 - %779 = insertelement <4 x float> undef, float %63, i32 0 - %780 = insertelement <4 x float> %779, float %65, i32 1 - %781 = insertelement <4 x float> %780, float %67, i32 2 - %782 = insertelement <4 x float> %781, float 0.000000e+00, i32 3 - %783 = call float @llvm.AMDGPU.dp4(<4 x float> %778, <4 x float> %782) - %784 = fcmp uge float 0x3FECCCCCC0000000, %783 - %785 = select i1 %784, float 0x3FECCCCCC0000000, float %783 - %786 = fmul float %772, %785 - %787 = fmul float %773, %785 - %788 = fmul float %774, %785 + %731 = fmul float %result.i, 5.000000e-01 + %732 = fcmp uge float 0x3FE4CCCCC0000000, %731 + %733 = select i1 %732, float 0x3FE4CCCCC0000000, float %731 + %734 = fcmp uge float %733, 0x3FC99999A0000000 + %735 = select i1 %734, float 0x3FC99999A0000000, float %733 + %one.sub.a.i89 = fsub float 1.000000e+00, %735 + %one.sub.ac.i90 = fmul float %one.sub.a.i89, %299 + %mul.i91 = fmul float %result.i156, %299 + %result.i92 = fadd float %mul.i91, %one.sub.ac.i90 + %one.sub.a.i85 = fsub float 1.000000e+00, %735 + %one.sub.ac.i86 = fmul float %one.sub.a.i85, %300 + %mul.i87 = fmul float %result.i152, %300 + %result.i88 = fadd float %mul.i87, %one.sub.ac.i86 + %one.sub.a.i81 = fsub float 1.000000e+00, %735 + %one.sub.ac.i82 = fmul float %one.sub.a.i81, %301 + %mul.i83 = fmul float %result.i148, %301 + %result.i84 = fadd float %mul.i83, %one.sub.ac.i82 + %one.sub.a.i77 = fsub float 1.000000e+00, %735 + %one.sub.ac.i78 = fmul float %one.sub.a.i77, %302 + %mul.i79 = fmul float %result.i144, %302 + %result.i80 = fadd float %mul.i79, %one.sub.ac.i78 + %736 = insertelement <4 x float> undef, float %328, i32 0 + %737 = insertelement <4 x float> %736, float %329, i32 1 + %738 = insertelement <4 x float> %737, float %330, i32 2 + %739 = insertelement <4 x float> %738, float 0.000000e+00, i32 3 + %740 = insertelement <4 x float> undef, float %63, i32 0 + %741 = insertelement <4 x float> %740, float %65, i32 1 + %742 = insertelement <4 x float> %741, float %67, i32 2 + %743 = insertelement <4 x float> %742, float 0.000000e+00, i32 3 + %744 = call float @llvm.AMDGPU.dp4(<4 x float> %739, <4 x float> %743) + %745 = fcmp uge float 0x3FEB333340000000, %744 + %746 = select i1 %745, float 0x3FEB333340000000, float %744 + %747 = fmul float %8, %746 + %748 = fmul float %13, %746 + %749 = fmul float %18, %746 + %750 = insertelement <4 x float> undef, float %34, i32 0 + %751 = insertelement <4 x float> %750, float %35, i32 1 + %752 = insertelement <4 x float> %751, float %36, i32 2 + %753 = insertelement <4 x float> %752, float 0.000000e+00, i32 3 + %754 = insertelement <4 x float> undef, float %63, i32 0 + %755 = insertelement <4 x float> %754, float %65, i32 1 + %756 = insertelement <4 x float> %755, float %67, i32 2 + %757 = insertelement <4 x float> %756, float 0.000000e+00, i32 3 + %758 = call float @llvm.AMDGPU.dp4(<4 x float> %753, <4 x float> %757) + %759 = fcmp uge float 0x3FECCCCCC0000000, %758 + %760 = select i1 %759, float 0x3FECCCCCC0000000, float %758 + %761 = fmul float %747, %760 + %762 = fmul float %748, %760 + %763 = fmul float %749, %760 br label %ENDIF169 -ENDIF169: ; preds = %ENDIF166, %IF170 - %temp84.3 = phi float [ %757, %IF170 ], [ %temp84.2, %ENDIF166 ] - %temp85.3 = phi float [ %758, %IF170 ], [ %temp85.2, %ENDIF166 ] - %temp86.3 = phi float [ %759, %IF170 ], [ %temp86.2, %ENDIF166 ] - %temp87.3 = phi float [ %760, %IF170 ], [ %temp87.2, %ENDIF166 ] - %temp92.9 = phi float [ %786, %IF170 ], [ %temp92.8, %ENDIF166 ] - %temp93.3 = phi float [ %787, %IF170 ], [ %temp93.2, %ENDIF166 ] - %temp94.3 = phi float [ %788, %IF170 ], [ %temp94.2, %ENDIF166 ] - %789 = fcmp oge float %179, 2.530000e+03 - %790 = sext i1 %789 to i32 - %791 = bitcast i32 %790 to float - %792 = fcmp olt float %179, 2.670000e+03 - %793 = sext i1 %792 to i32 - %794 = bitcast i32 %793 to float - %795 = bitcast float %791 to i32 - %796 = bitcast float %794 to i32 - %797 = and i32 %795, %796 - %798 = bitcast i32 %797 to float - %799 = bitcast float %798 to i32 - %800 = icmp ne i32 %799, 0 - br i1 %800, label %IF173, label %ENDIF172 +ENDIF169: ; preds = %IF170, %ENDIF166 + %temp84.3 = phi float [ %result.i92, %IF170 ], [ %temp84.2, %ENDIF166 ] + %temp85.3 = phi float [ %result.i88, %IF170 ], [ %temp85.2, %ENDIF166 ] + %temp86.3 = phi float [ %result.i84, %IF170 ], [ %temp86.2, %ENDIF166 ] + %temp87.3 = phi float [ %result.i80, %IF170 ], [ %temp87.2, %ENDIF166 ] + %temp92.9 = phi float [ %761, %IF170 ], [ %temp92.8, %ENDIF166 ] + %temp93.3 = phi float [ %762, %IF170 ], [ %temp93.2, %ENDIF166 ] + %temp94.3 = phi float [ %763, %IF170 ], [ %temp94.2, %ENDIF166 ] + %764 = fcmp oge float %179, 2.530000e+03 + %765 = sext i1 %764 to i32 + %766 = bitcast i32 %765 to float + %767 = fcmp olt float %179, 2.670000e+03 + %768 = sext i1 %767 to i32 + %769 = bitcast i32 %768 to float + %770 = bitcast float %766 to i32 + %771 = bitcast float %769 to i32 + %772 = and i32 %770, %771 + %773 = bitcast i32 %772 to float + %774 = bitcast float %773 to i32 + %775 = icmp ne i32 %774, 0 + br i1 %775, label %IF173, label %ENDIF172 IF173: ; preds = %ENDIF169 - %801 = fmul float %202, 5.000000e-01 - %802 = fcmp uge float 0x3FE4CCCCC0000000, %801 - %803 = select i1 %802, float 0x3FE4CCCCC0000000, float %801 - %804 = fcmp uge float %803, 0x3FB99999A0000000 - %805 = select i1 %804, float 0x3FB99999A0000000, float %803 - %806 = call float @llvm.AMDGPU.lrp(float %805, float %400, float %300) - %807 = call float @llvm.AMDGPU.lrp(float %805, float %401, float %301) - %808 = call float @llvm.AMDGPU.lrp(float %805, float %402, float %302) - %809 = call float @llvm.AMDGPU.lrp(float %805, float %403, float %303) - %810 = insertelement <4 x float> undef, float %329, i32 0 - %811 = insertelement <4 x float> %810, float %330, i32 1 - %812 = insertelement <4 x float> %811, float %331, i32 2 - %813 = insertelement <4 x float> %812, float 0.000000e+00, i32 3 - %814 = insertelement <4 x float> undef, float %63, i32 0 - %815 = insertelement <4 x float> %814, float %65, i32 1 - %816 = insertelement <4 x float> %815, float %67, i32 2 - %817 = insertelement <4 x float> %816, float 0.000000e+00, i32 3 - %818 = call float @llvm.AMDGPU.dp4(<4 x float> %813, <4 x float> %817) - %819 = fcmp uge float 0x3FEB333340000000, %818 - %820 = select i1 %819, float 0x3FEB333340000000, float %818 - %821 = fmul float %8, %820 - %822 = fmul float %13, %820 - %823 = fmul float %18, %820 - %824 = insertelement <4 x float> undef, float %34, i32 0 - %825 = insertelement <4 x float> %824, float %35, i32 1 - %826 = insertelement <4 x float> %825, float %36, i32 2 - %827 = insertelement <4 x float> %826, float 0.000000e+00, i32 3 - %828 = insertelement <4 x float> undef, float %63, i32 0 - %829 = insertelement <4 x float> %828, float %65, i32 1 - %830 = insertelement <4 x float> %829, float %67, i32 2 - %831 = insertelement <4 x float> %830, float 0.000000e+00, i32 3 - %832 = call float @llvm.AMDGPU.dp4(<4 x float> %827, <4 x float> %831) - %833 = fcmp uge float 0x3FECCCCCC0000000, %832 - %834 = select i1 %833, float 0x3FECCCCCC0000000, float %832 - %835 = fmul float %821, %834 - %836 = fmul float %822, %834 - %837 = fmul float %823, %834 + %776 = fmul float %result.i, 5.000000e-01 + %777 = fcmp uge float 0x3FE4CCCCC0000000, %776 + %778 = select i1 %777, float 0x3FE4CCCCC0000000, float %776 + %779 = fcmp uge float %778, 0x3FB99999A0000000 + %780 = select i1 %779, float 0x3FB99999A0000000, float %778 + %one.sub.a.i73 = fsub float 1.000000e+00, %780 + %one.sub.ac.i74 = fmul float %one.sub.a.i73, %299 + %mul.i75 = fmul float %result.i172, %299 + %result.i76 = fadd float %mul.i75, %one.sub.ac.i74 + %one.sub.a.i69 = fsub float 1.000000e+00, %780 + %one.sub.ac.i70 = fmul float %one.sub.a.i69, %300 + %mul.i71 = fmul float %result.i168, %300 + %result.i72 = fadd float %mul.i71, %one.sub.ac.i70 + %one.sub.a.i65 = fsub float 1.000000e+00, %780 + %one.sub.ac.i66 = fmul float %one.sub.a.i65, %301 + %mul.i67 = fmul float %result.i164, %301 + %result.i68 = fadd float %mul.i67, %one.sub.ac.i66 + %one.sub.a.i61 = fsub float 1.000000e+00, %780 + %one.sub.ac.i62 = fmul float %one.sub.a.i61, %302 + %mul.i63 = fmul float %result.i160, %302 + %result.i64 = fadd float %mul.i63, %one.sub.ac.i62 + %781 = insertelement <4 x float> undef, float %328, i32 0 + %782 = insertelement <4 x float> %781, float %329, i32 1 + %783 = insertelement <4 x float> %782, float %330, i32 2 + %784 = insertelement <4 x float> %783, float 0.000000e+00, i32 3 + %785 = insertelement <4 x float> undef, float %63, i32 0 + %786 = insertelement <4 x float> %785, float %65, i32 1 + %787 = insertelement <4 x float> %786, float %67, i32 2 + %788 = insertelement <4 x float> %787, float 0.000000e+00, i32 3 + %789 = call float @llvm.AMDGPU.dp4(<4 x float> %784, <4 x float> %788) + %790 = fcmp uge float 0x3FEB333340000000, %789 + %791 = select i1 %790, float 0x3FEB333340000000, float %789 + %792 = fmul float %8, %791 + %793 = fmul float %13, %791 + %794 = fmul float %18, %791 + %795 = insertelement <4 x float> undef, float %34, i32 0 + %796 = insertelement <4 x float> %795, float %35, i32 1 + %797 = insertelement <4 x float> %796, float %36, i32 2 + %798 = insertelement <4 x float> %797, float 0.000000e+00, i32 3 + %799 = insertelement <4 x float> undef, float %63, i32 0 + %800 = insertelement <4 x float> %799, float %65, i32 1 + %801 = insertelement <4 x float> %800, float %67, i32 2 + %802 = insertelement <4 x float> %801, float 0.000000e+00, i32 3 + %803 = call float @llvm.AMDGPU.dp4(<4 x float> %798, <4 x float> %802) + %804 = fcmp uge float 0x3FECCCCCC0000000, %803 + %805 = select i1 %804, float 0x3FECCCCCC0000000, float %803 + %806 = fmul float %792, %805 + %807 = fmul float %793, %805 + %808 = fmul float %794, %805 br label %ENDIF172 -ENDIF172: ; preds = %ENDIF169, %IF173 - %temp84.4 = phi float [ %806, %IF173 ], [ %temp84.3, %ENDIF169 ] - %temp85.4 = phi float [ %807, %IF173 ], [ %temp85.3, %ENDIF169 ] - %temp86.4 = phi float [ %808, %IF173 ], [ %temp86.3, %ENDIF169 ] - %temp87.4 = phi float [ %809, %IF173 ], [ %temp87.3, %ENDIF169 ] - %temp92.10 = phi float [ %835, %IF173 ], [ %temp92.9, %ENDIF169 ] - %temp93.4 = phi float [ %836, %IF173 ], [ %temp93.3, %ENDIF169 ] - %temp94.4 = phi float [ %837, %IF173 ], [ %temp94.3, %ENDIF169 ] - %838 = fcmp oge float %179, 2.670000e+03 - %839 = sext i1 %838 to i32 - %840 = bitcast i32 %839 to float - %841 = bitcast float %840 to i32 - %842 = icmp ne i32 %841, 0 - br i1 %842, label %IF176, label %ENDIF175 +ENDIF172: ; preds = %IF173, %ENDIF169 + %temp84.4 = phi float [ %result.i76, %IF173 ], [ %temp84.3, %ENDIF169 ] + %temp85.4 = phi float [ %result.i72, %IF173 ], [ %temp85.3, %ENDIF169 ] + %temp86.4 = phi float [ %result.i68, %IF173 ], [ %temp86.3, %ENDIF169 ] + %temp87.4 = phi float [ %result.i64, %IF173 ], [ %temp87.3, %ENDIF169 ] + %temp92.10 = phi float [ %806, %IF173 ], [ %temp92.9, %ENDIF169 ] + %temp93.4 = phi float [ %807, %IF173 ], [ %temp93.3, %ENDIF169 ] + %temp94.4 = phi float [ %808, %IF173 ], [ %temp94.3, %ENDIF169 ] + %809 = fcmp oge float %179, 2.670000e+03 + %810 = sext i1 %809 to i32 + %811 = bitcast i32 %810 to float + %812 = bitcast float %811 to i32 + %813 = icmp ne i32 %812, 0 + br i1 %813, label %IF176, label %ENDIF175 IF176: ; preds = %ENDIF172 - %843 = fmul float %202, 0x3FB99999A0000000 - %844 = fcmp uge float 0.000000e+00, %843 - %845 = select i1 %844, float 0.000000e+00, float %843 - %846 = fcmp uge float %845, 0x3FD99999A0000000 - %847 = select i1 %846, float 0x3FD99999A0000000, float %845 - %848 = call float @llvm.AMDGPU.lrp(float %847, float %400, float %300) - %849 = call float @llvm.AMDGPU.lrp(float %847, float %401, float %301) - %850 = call float @llvm.AMDGPU.lrp(float %847, float %402, float %302) - %851 = call float @llvm.AMDGPU.lrp(float %847, float %403, float %303) - %852 = insertelement <4 x float> undef, float %329, i32 0 - %853 = insertelement <4 x float> %852, float %330, i32 1 - %854 = insertelement <4 x float> %853, float %331, i32 2 - %855 = insertelement <4 x float> %854, float 0.000000e+00, i32 3 - %856 = insertelement <4 x float> undef, float %63, i32 0 - %857 = insertelement <4 x float> %856, float %65, i32 1 - %858 = insertelement <4 x float> %857, float %67, i32 2 - %859 = insertelement <4 x float> %858, float 0.000000e+00, i32 3 - %860 = call float @llvm.AMDGPU.dp4(<4 x float> %855, <4 x float> %859) - %861 = fcmp uge float 0x3FEB333340000000, %860 - %862 = select i1 %861, float 0x3FEB333340000000, float %860 - %863 = fmul float %8, %862 - %864 = fmul float %13, %862 - %865 = fmul float %18, %862 - %866 = insertelement <4 x float> undef, float %34, i32 0 - %867 = insertelement <4 x float> %866, float %35, i32 1 - %868 = insertelement <4 x float> %867, float %36, i32 2 - %869 = insertelement <4 x float> %868, float 0.000000e+00, i32 3 - %870 = insertelement <4 x float> undef, float %63, i32 0 - %871 = insertelement <4 x float> %870, float %65, i32 1 - %872 = insertelement <4 x float> %871, float %67, i32 2 - %873 = insertelement <4 x float> %872, float 0.000000e+00, i32 3 - %874 = call float @llvm.AMDGPU.dp4(<4 x float> %869, <4 x float> %873) - %875 = fcmp uge float 0x3FECCCCCC0000000, %874 - %876 = select i1 %875, float 0x3FECCCCCC0000000, float %874 - %877 = fmul float %863, %876 - %878 = fmul float %864, %876 - %879 = fmul float %865, %876 + %814 = fmul float %result.i, 0x3FB99999A0000000 + %815 = fcmp uge float 0.000000e+00, %814 + %816 = select i1 %815, float 0.000000e+00, float %814 + %817 = fcmp uge float %816, 0x3FD99999A0000000 + %818 = select i1 %817, float 0x3FD99999A0000000, float %816 + %one.sub.a.i57 = fsub float 1.000000e+00, %818 + %one.sub.ac.i58 = fmul float %one.sub.a.i57, %299 + %mul.i59 = fmul float %result.i172, %299 + %result.i60 = fadd float %mul.i59, %one.sub.ac.i58 + %one.sub.a.i53 = fsub float 1.000000e+00, %818 + %one.sub.ac.i54 = fmul float %one.sub.a.i53, %300 + %mul.i55 = fmul float %result.i168, %300 + %result.i56 = fadd float %mul.i55, %one.sub.ac.i54 + %one.sub.a.i49 = fsub float 1.000000e+00, %818 + %one.sub.ac.i50 = fmul float %one.sub.a.i49, %301 + %mul.i51 = fmul float %result.i164, %301 + %result.i52 = fadd float %mul.i51, %one.sub.ac.i50 + %one.sub.a.i45 = fsub float 1.000000e+00, %818 + %one.sub.ac.i46 = fmul float %one.sub.a.i45, %302 + %mul.i47 = fmul float %result.i160, %302 + %result.i48 = fadd float %mul.i47, %one.sub.ac.i46 + %819 = insertelement <4 x float> undef, float %328, i32 0 + %820 = insertelement <4 x float> %819, float %329, i32 1 + %821 = insertelement <4 x float> %820, float %330, i32 2 + %822 = insertelement <4 x float> %821, float 0.000000e+00, i32 3 + %823 = insertelement <4 x float> undef, float %63, i32 0 + %824 = insertelement <4 x float> %823, float %65, i32 1 + %825 = insertelement <4 x float> %824, float %67, i32 2 + %826 = insertelement <4 x float> %825, float 0.000000e+00, i32 3 + %827 = call float @llvm.AMDGPU.dp4(<4 x float> %822, <4 x float> %826) + %828 = fcmp uge float 0x3FEB333340000000, %827 + %829 = select i1 %828, float 0x3FEB333340000000, float %827 + %830 = fmul float %8, %829 + %831 = fmul float %13, %829 + %832 = fmul float %18, %829 + %833 = insertelement <4 x float> undef, float %34, i32 0 + %834 = insertelement <4 x float> %833, float %35, i32 1 + %835 = insertelement <4 x float> %834, float %36, i32 2 + %836 = insertelement <4 x float> %835, float 0.000000e+00, i32 3 + %837 = insertelement <4 x float> undef, float %63, i32 0 + %838 = insertelement <4 x float> %837, float %65, i32 1 + %839 = insertelement <4 x float> %838, float %67, i32 2 + %840 = insertelement <4 x float> %839, float 0.000000e+00, i32 3 + %841 = call float @llvm.AMDGPU.dp4(<4 x float> %836, <4 x float> %840) + %842 = fcmp uge float 0x3FECCCCCC0000000, %841 + %843 = select i1 %842, float 0x3FECCCCCC0000000, float %841 + %844 = fmul float %830, %843 + %845 = fmul float %831, %843 + %846 = fmul float %832, %843 br label %ENDIF175 -ENDIF175: ; preds = %ENDIF172, %IF176 - %temp84.5 = phi float [ %848, %IF176 ], [ %temp84.4, %ENDIF172 ] - %temp85.5 = phi float [ %849, %IF176 ], [ %temp85.4, %ENDIF172 ] - %temp86.5 = phi float [ %850, %IF176 ], [ %temp86.4, %ENDIF172 ] - %temp87.5 = phi float [ %851, %IF176 ], [ %temp87.4, %ENDIF172 ] - %temp92.11 = phi float [ %877, %IF176 ], [ %temp92.10, %ENDIF172 ] - %temp93.5 = phi float [ %878, %IF176 ], [ %temp93.4, %ENDIF172 ] - %temp94.5 = phi float [ %879, %IF176 ], [ %temp94.4, %ENDIF172 ] - %880 = load <4 x float>, <4 x float> addrspace(8)* getelementptr ([1024 x <4 x float>], [1024 x <4 x float>] addrspace(8)* null, i64 0, i32 10) - %881 = extractelement <4 x float> %880, i32 0 - %882 = fcmp olt float %881, %179 - %883 = sext i1 %882 to i32 - %884 = bitcast i32 %883 to float - %885 = bitcast float %884 to i32 - %886 = icmp ne i32 %885, 0 - br i1 %886, label %IF179, label %ENDIF178 +ENDIF175: ; preds = %IF176, %ENDIF172 + %temp84.5 = phi float [ %result.i60, %IF176 ], [ %temp84.4, %ENDIF172 ] + %temp85.5 = phi float [ %result.i56, %IF176 ], [ %temp85.4, %ENDIF172 ] + %temp86.5 = phi float [ %result.i52, %IF176 ], [ %temp86.4, %ENDIF172 ] + %temp87.5 = phi float [ %result.i48, %IF176 ], [ %temp87.4, %ENDIF172 ] + %temp92.11 = phi float [ %844, %IF176 ], [ %temp92.10, %ENDIF172 ] + %temp93.5 = phi float [ %845, %IF176 ], [ %temp93.4, %ENDIF172 ] + %temp94.5 = phi float [ %846, %IF176 ], [ %temp94.4, %ENDIF172 ] + %847 = load <4 x float>, <4 x float> addrspace(8)* getelementptr ([1024 x <4 x float>], [1024 x <4 x float>] addrspace(8)* null, i64 0, i32 10) + %848 = extractelement <4 x float> %847, i32 0 + %849 = fcmp olt float %848, %179 + %850 = sext i1 %849 to i32 + %851 = bitcast i32 %850 to float + %852 = bitcast float %851 to i32 + %853 = icmp ne i32 %852, 0 + br i1 %853, label %IF179, label %ENDIF178 IF179: ; preds = %ENDIF175 - %887 = fadd float %202, 1.000000e+00 - %888 = fadd float %202, 1.000000e+00 - %889 = fadd float %202, 1.000000e+00 - %890 = insertelement <4 x float> undef, float %43, i32 0 - %891 = insertelement <4 x float> %890, float %44, i32 1 - %892 = insertelement <4 x float> %891, float %45, i32 2 - %893 = insertelement <4 x float> %892, float 0.000000e+00, i32 3 - %894 = insertelement <4 x float> undef, float %43, i32 0 - %895 = insertelement <4 x float> %894, float %44, i32 1 - %896 = insertelement <4 x float> %895, float %45, i32 2 - %897 = insertelement <4 x float> %896, float 0.000000e+00, i32 3 - %898 = call float @llvm.AMDGPU.dp4(<4 x float> %893, <4 x float> %897) - %899 = call float @llvm.AMDGPU.rsq.clamped.f32(float %898) - %900 = fmul float %45, %899 - %901 = call float @fabs(float %900) - %902 = fmul float %176, 0x3FECCCCCC0000000 - %903 = fadd float %902, %901 - %904 = fadd float %903, 0xBFEFAE1480000000 - %905 = fmul float %904, 0xC043FFFE20000000 - %906 = call float @llvm.AMDIL.clamp.(float %905, float 0.000000e+00, float 1.000000e+00) - %907 = fmul float 2.000000e+00, %906 - %908 = fsub float -0.000000e+00, %907 - %909 = fadd float 3.000000e+00, %908 - %910 = fmul float %906, %909 - %911 = fmul float %906, %910 - %912 = call float @llvm.AMDGPU.lrp(float %911, float %temp84.5, float %887) - %913 = call float @llvm.AMDGPU.lrp(float %911, float %temp85.5, float %888) - %914 = call float @llvm.AMDGPU.lrp(float %911, float %temp86.5, float %889) - %915 = call float @llvm.AMDGPU.lrp(float %911, float %temp87.5, float 0.000000e+00) - %916 = fmul float %202, 5.000000e-01 - %917 = fcmp uge float 0x3FE4CCCCC0000000, %916 - %918 = select i1 %917, float 0x3FE4CCCCC0000000, float %916 - %919 = fcmp uge float %918, 0x3FE3333340000000 - %920 = select i1 %919, float 0x3FE3333340000000, float %918 - %921 = call float @llvm.AMDGPU.lrp(float %920, float %912, float %temp84.5) - %922 = call float @llvm.AMDGPU.lrp(float %920, float %913, float %temp85.5) - %923 = call float @llvm.AMDGPU.lrp(float %920, float %914, float %temp86.5) - %924 = call float @llvm.AMDGPU.lrp(float %920, float %915, float %temp87.5) - %925 = insertelement <4 x float> undef, float %329, i32 0 - %926 = insertelement <4 x float> %925, float %330, i32 1 - %927 = insertelement <4 x float> %926, float %331, i32 2 - %928 = insertelement <4 x float> %927, float 0.000000e+00, i32 3 - %929 = insertelement <4 x float> undef, float %63, i32 0 - %930 = insertelement <4 x float> %929, float %65, i32 1 - %931 = insertelement <4 x float> %930, float %67, i32 2 - %932 = insertelement <4 x float> %931, float 0.000000e+00, i32 3 - %933 = call float @llvm.AMDGPU.dp4(<4 x float> %928, <4 x float> %932) - %934 = fcmp uge float 0x3FE99999A0000000, %933 - %935 = select i1 %934, float 0x3FE99999A0000000, float %933 - %936 = fmul float %8, %935 - %937 = fmul float %13, %935 - %938 = fmul float %18, %935 - %939 = insertelement <4 x float> undef, float %34, i32 0 - %940 = insertelement <4 x float> %939, float %35, i32 1 - %941 = insertelement <4 x float> %940, float %36, i32 2 - %942 = insertelement <4 x float> %941, float 0.000000e+00, i32 3 - %943 = insertelement <4 x float> undef, float %63, i32 0 - %944 = insertelement <4 x float> %943, float %65, i32 1 - %945 = insertelement <4 x float> %944, float %67, i32 2 - %946 = insertelement <4 x float> %945, float 0.000000e+00, i32 3 - %947 = call float @llvm.AMDGPU.dp4(<4 x float> %942, <4 x float> %946) - %948 = fcmp uge float 0x3FECCCCCC0000000, %947 - %949 = select i1 %948, float 0x3FECCCCCC0000000, float %947 - %950 = fmul float %936, %949 - %951 = fmul float %937, %949 - %952 = fmul float %938, %949 + %854 = fadd float %result.i, 1.000000e+00 + %855 = fadd float %result.i, 1.000000e+00 + %856 = fadd float %result.i, 1.000000e+00 + %857 = insertelement <4 x float> undef, float %43, i32 0 + %858 = insertelement <4 x float> %857, float %44, i32 1 + %859 = insertelement <4 x float> %858, float %45, i32 2 + %860 = insertelement <4 x float> %859, float 0.000000e+00, i32 3 + %861 = insertelement <4 x float> undef, float %43, i32 0 + %862 = insertelement <4 x float> %861, float %44, i32 1 + %863 = insertelement <4 x float> %862, float %45, i32 2 + %864 = insertelement <4 x float> %863, float 0.000000e+00, i32 3 + %865 = call float @llvm.AMDGPU.dp4(<4 x float> %860, <4 x float> %864) + %866 = call float @llvm.AMDGPU.rsq.clamped.f32(float %865) + %867 = fmul float %45, %866 + %868 = call float @fabs(float %867) + %869 = fmul float %176, 0x3FECCCCCC0000000 + %870 = fadd float %869, %868 + %871 = fadd float %870, 0xBFEFAE1480000000 + %872 = fmul float %871, 0xC043FFFE20000000 + %873 = call float @llvm.AMDIL.clamp.(float %872, float 0.000000e+00, float 1.000000e+00) + %874 = fmul float 2.000000e+00, %873 + %875 = fsub float -0.000000e+00, %874 + %876 = fadd float 3.000000e+00, %875 + %877 = fmul float %873, %876 + %878 = fmul float %873, %877 + %one.sub.a.i41 = fsub float 1.000000e+00, %878 + %one.sub.ac.i42 = fmul float %one.sub.a.i41, %854 + %mul.i43 = fmul float %temp84.5, %854 + %result.i44 = fadd float %mul.i43, %one.sub.ac.i42 + %one.sub.a.i37 = fsub float 1.000000e+00, %878 + %one.sub.ac.i38 = fmul float %one.sub.a.i37, %855 + %mul.i39 = fmul float %temp85.5, %855 + %result.i40 = fadd float %mul.i39, %one.sub.ac.i38 + %one.sub.a.i33 = fsub float 1.000000e+00, %878 + %one.sub.ac.i34 = fmul float %one.sub.a.i33, %856 + %mul.i35 = fmul float %temp86.5, %856 + %result.i36 = fadd float %mul.i35, %one.sub.ac.i34 + %one.sub.a.i29 = fsub float 1.000000e+00, %878 + %one.sub.ac.i30 = fmul float %one.sub.a.i29, 0.000000e+00 + %mul.i31 = fmul float %temp87.5, 0.000000e+00 + %result.i32 = fadd float %mul.i31, %one.sub.ac.i30 + %879 = fmul float %result.i, 5.000000e-01 + %880 = fcmp uge float 0x3FE4CCCCC0000000, %879 + %881 = select i1 %880, float 0x3FE4CCCCC0000000, float %879 + %882 = fcmp uge float %881, 0x3FE3333340000000 + %883 = select i1 %882, float 0x3FE3333340000000, float %881 + %one.sub.a.i25 = fsub float 1.000000e+00, %883 + %one.sub.ac.i26 = fmul float %one.sub.a.i25, %temp84.5 + %mul.i27 = fmul float %result.i44, %temp84.5 + %result.i28 = fadd float %mul.i27, %one.sub.ac.i26 + %one.sub.a.i21 = fsub float 1.000000e+00, %883 + %one.sub.ac.i22 = fmul float %one.sub.a.i21, %temp85.5 + %mul.i23 = fmul float %result.i40, %temp85.5 + %result.i24 = fadd float %mul.i23, %one.sub.ac.i22 + %one.sub.a.i17 = fsub float 1.000000e+00, %883 + %one.sub.ac.i18 = fmul float %one.sub.a.i17, %temp86.5 + %mul.i19 = fmul float %result.i36, %temp86.5 + %result.i20 = fadd float %mul.i19, %one.sub.ac.i18 + %one.sub.a.i13 = fsub float 1.000000e+00, %883 + %one.sub.ac.i14 = fmul float %one.sub.a.i13, %temp87.5 + %mul.i15 = fmul float %result.i32, %temp87.5 + %result.i16 = fadd float %mul.i15, %one.sub.ac.i14 + %884 = insertelement <4 x float> undef, float %328, i32 0 + %885 = insertelement <4 x float> %884, float %329, i32 1 + %886 = insertelement <4 x float> %885, float %330, i32 2 + %887 = insertelement <4 x float> %886, float 0.000000e+00, i32 3 + %888 = insertelement <4 x float> undef, float %63, i32 0 + %889 = insertelement <4 x float> %888, float %65, i32 1 + %890 = insertelement <4 x float> %889, float %67, i32 2 + %891 = insertelement <4 x float> %890, float 0.000000e+00, i32 3 + %892 = call float @llvm.AMDGPU.dp4(<4 x float> %887, <4 x float> %891) + %893 = fcmp uge float 0x3FE99999A0000000, %892 + %894 = select i1 %893, float 0x3FE99999A0000000, float %892 + %895 = fmul float %8, %894 + %896 = fmul float %13, %894 + %897 = fmul float %18, %894 + %898 = insertelement <4 x float> undef, float %34, i32 0 + %899 = insertelement <4 x float> %898, float %35, i32 1 + %900 = insertelement <4 x float> %899, float %36, i32 2 + %901 = insertelement <4 x float> %900, float 0.000000e+00, i32 3 + %902 = insertelement <4 x float> undef, float %63, i32 0 + %903 = insertelement <4 x float> %902, float %65, i32 1 + %904 = insertelement <4 x float> %903, float %67, i32 2 + %905 = insertelement <4 x float> %904, float 0.000000e+00, i32 3 + %906 = call float @llvm.AMDGPU.dp4(<4 x float> %901, <4 x float> %905) + %907 = fcmp uge float 0x3FECCCCCC0000000, %906 + %908 = select i1 %907, float 0x3FECCCCCC0000000, float %906 + %909 = fmul float %895, %908 + %910 = fmul float %896, %908 + %911 = fmul float %897, %908 br label %ENDIF178 -ENDIF178: ; preds = %ENDIF175, %IF179 - %temp84.6 = phi float [ %921, %IF179 ], [ %temp84.5, %ENDIF175 ] - %temp85.6 = phi float [ %922, %IF179 ], [ %temp85.5, %ENDIF175 ] - %temp86.6 = phi float [ %923, %IF179 ], [ %temp86.5, %ENDIF175 ] - %temp87.6 = phi float [ %924, %IF179 ], [ %temp87.5, %ENDIF175 ] - %temp92.12 = phi float [ %950, %IF179 ], [ %temp92.11, %ENDIF175 ] - %temp93.6 = phi float [ %951, %IF179 ], [ %temp93.5, %ENDIF175 ] - %temp94.6 = phi float [ %952, %IF179 ], [ %temp94.5, %ENDIF175 ] - %953 = fmul float %55, %temp92.12 - %954 = fmul float %57, %temp93.6 - %955 = fmul float %59, %temp94.6 - %956 = fmul float %61, 0.000000e+00 - %957 = fmul float %temp84.6, %953 - %958 = fmul float %temp85.6, %954 - %959 = fmul float %temp86.6, %955 - %960 = fmul float %temp87.6, %956 - %961 = fmul float %2, -2.000000e+00 - %962 = fadd float %961, 1.000000e+00 - %963 = load <4 x float>, <4 x float> addrspace(8)* getelementptr ([1024 x <4 x float>], [1024 x <4 x float>] addrspace(8)* null, i64 0, i32 23) - %964 = extractelement <4 x float> %963, i32 2 - %965 = fsub float -0.000000e+00, %964 - %966 = fadd float %962, %965 - %967 = fdiv float 1.000000e+00, %966 - %968 = load <4 x float>, <4 x float> addrspace(8)* getelementptr ([1024 x <4 x float>], [1024 x <4 x float>] addrspace(8)* null, i64 0, i32 24) - %969 = extractelement <4 x float> %968, i32 2 - %970 = fmul float %969, %967 - %971 = fsub float -0.000000e+00, %53 - %972 = fmul float %971, %53 - %973 = fmul float %972, %970 - %974 = fmul float %973, %970 - %975 = fmul float %974, 0x3FF7154760000000 - %976 = call float @llvm.AMDIL.exp.(float %975) - %977 = fcmp oeq float %53, 1.000000e+00 - %978 = sext i1 %977 to i32 - %979 = bitcast i32 %978 to float - %980 = bitcast float %979 to i32 - %981 = icmp ne i32 %980, 0 - %.184 = select i1 %981, float 1.000000e+00, float %976 - %982 = call float @llvm.AMDGPU.lrp(float %.184, float %957, float %47) - %983 = call float @llvm.AMDGPU.lrp(float %.184, float %958, float %49) - %984 = call float @llvm.AMDGPU.lrp(float %.184, float %959, float %51) - %985 = insertelement <4 x float> undef, float %982, i32 0 - %986 = insertelement <4 x float> %985, float %983, i32 1 - %987 = insertelement <4 x float> %986, float %984, i32 2 - %988 = insertelement <4 x float> %987, float %960, i32 3 - call void @llvm.R600.store.swizzle(<4 x float> %988, i32 0, i32 0) +ENDIF178: ; preds = %IF179, %ENDIF175 + %temp84.6 = phi float [ %result.i28, %IF179 ], [ %temp84.5, %ENDIF175 ] + %temp85.6 = phi float [ %result.i24, %IF179 ], [ %temp85.5, %ENDIF175 ] + %temp86.6 = phi float [ %result.i20, %IF179 ], [ %temp86.5, %ENDIF175 ] + %temp87.6 = phi float [ %result.i16, %IF179 ], [ %temp87.5, %ENDIF175 ] + %temp92.12 = phi float [ %909, %IF179 ], [ %temp92.11, %ENDIF175 ] + %temp93.6 = phi float [ %910, %IF179 ], [ %temp93.5, %ENDIF175 ] + %temp94.6 = phi float [ %911, %IF179 ], [ %temp94.5, %ENDIF175 ] + %912 = fmul float %55, %temp92.12 + %913 = fmul float %57, %temp93.6 + %914 = fmul float %59, %temp94.6 + %915 = fmul float %61, 0.000000e+00 + %916 = fmul float %temp84.6, %912 + %917 = fmul float %temp85.6, %913 + %918 = fmul float %temp86.6, %914 + %919 = fmul float %temp87.6, %915 + %920 = fmul float %2, -2.000000e+00 + %921 = fadd float %920, 1.000000e+00 + %922 = load <4 x float>, <4 x float> addrspace(8)* getelementptr ([1024 x <4 x float>], [1024 x <4 x float>] addrspace(8)* null, i64 0, i32 23) + %923 = extractelement <4 x float> %922, i32 2 + %924 = fsub float -0.000000e+00, %923 + %925 = fadd float %921, %924 + %926 = fdiv float 1.000000e+00, %925 + %927 = load <4 x float>, <4 x float> addrspace(8)* getelementptr ([1024 x <4 x float>], [1024 x <4 x float>] addrspace(8)* null, i64 0, i32 24) + %928 = extractelement <4 x float> %927, i32 2 + %929 = fmul float %928, %926 + %930 = fsub float -0.000000e+00, %53 + %931 = fmul float %930, %53 + %932 = fmul float %931, %929 + %933 = fmul float %932, %929 + %934 = fmul float %933, 0x3FF7154760000000 + %935 = call float @llvm.AMDIL.exp.(float %934) + %936 = fcmp oeq float %53, 1.000000e+00 + %937 = sext i1 %936 to i32 + %938 = bitcast i32 %937 to float + %939 = bitcast float %938 to i32 + %940 = icmp ne i32 %939, 0 + %.184 = select i1 %940, float 1.000000e+00, float %935 + %one.sub.a.i9 = fsub float 1.000000e+00, %.184 + %one.sub.ac.i10 = fmul float %one.sub.a.i9, %47 + %mul.i11 = fmul float %916, %47 + %result.i12 = fadd float %mul.i11, %one.sub.ac.i10 + %one.sub.a.i5 = fsub float 1.000000e+00, %.184 + %one.sub.ac.i6 = fmul float %one.sub.a.i5, %49 + %mul.i7 = fmul float %917, %49 + %result.i8 = fadd float %mul.i7, %one.sub.ac.i6 + %one.sub.a.i1 = fsub float 1.000000e+00, %.184 + %one.sub.ac.i2 = fmul float %one.sub.a.i1, %51 + %mul.i3 = fmul float %918, %51 + %result.i4 = fadd float %mul.i3, %one.sub.ac.i2 + %941 = insertelement <4 x float> undef, float %result.i12, i32 0 + %942 = insertelement <4 x float> %941, float %result.i8, i32 1 + %943 = insertelement <4 x float> %942, float %result.i4, i32 2 + %944 = insertelement <4 x float> %943, float %919, i32 3 + call void @llvm.R600.store.swizzle(<4 x float> %944, i32 0, i32 0) ret void } ; Function Attrs: readnone -declare float @llvm.AMDGPU.dp4(<4 x float>, <4 x float>) #1 +declare float @llvm.AMDGPU.dp4(<4 x float>, <4 x float>) #2 -; Function Attrs: readnone -declare float @llvm.AMDGPU.rsq.clamped.f32(float) #1 +; Function Attrs: nounwind readnone +declare float @llvm.AMDGPU.rsq.clamped.f32(float) #3 ; Function Attrs: readnone -declare <4 x float> @llvm.AMDGPU.tex(<4 x float>, i32, i32, i32) #1 +declare <4 x float> @llvm.AMDGPU.tex(<4 x float>, i32, i32, i32) #2 ; Function Attrs: readonly -declare float @fabs(float) #2 - -; Function Attrs: readnone -declare float @llvm.AMDIL.exp.(float) #1 +declare float @fabs(float) #4 ; Function Attrs: readnone -declare float @llvm.AMDGPU.lrp(float, float, float) #1 +declare float @llvm.AMDIL.exp.(float) #2 ; Function Attrs: readnone -declare float @llvm.AMDIL.clamp.(float, float, float) #1 +declare float @llvm.AMDIL.clamp.(float, float, float) #2 declare void @llvm.R600.store.swizzle(<4 x float>, i32, i32) -attributes #0 = { "ShaderType"="0" } -attributes #1 = { readnone } -attributes #2 = { readonly } +attributes #0 = { alwaysinline nounwind readnone } +attributes #1 = { "ShaderType"="0" } +attributes #2 = { readnone } +attributes #3 = { nounwind readnone } +attributes #4 = { readonly } Index: test/CodeGen/AMDGPU/llvm.AMDGPU.legacy.rsq.ll =================================================================== --- test/CodeGen/AMDGPU/llvm.AMDGPU.legacy.rsq.ll +++ /dev/null @@ -1,13 +0,0 @@ -; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s -; RUN: llc -march=r600 -mcpu=cypress -verify-machineinstrs < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s - -declare float @llvm.AMDGPU.legacy.rsq(float) nounwind readnone - -; FUNC-LABEL: {{^}}rsq_legacy_f32: -; SI: v_rsq_legacy_f32_e32 -; EG: RECIPSQRT_IEEE -define void @rsq_legacy_f32(float addrspace(1)* %out, float %src) nounwind { - %rsq = call float @llvm.AMDGPU.legacy.rsq(float %src) nounwind readnone - store float %rsq, float addrspace(1)* %out, align 4 - ret void -} Index: test/CodeGen/AMDGPU/llvm.AMDGPU.mul.ll =================================================================== --- test/CodeGen/AMDGPU/llvm.AMDGPU.mul.ll +++ /dev/null @@ -1,17 +0,0 @@ -;RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck %s - -;CHECK: MUL NON-IEEE * T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}} - -define void @test(<4 x float> inreg %reg0) #0 { - %r0 = extractelement <4 x float> %reg0, i32 0 - %r1 = extractelement <4 x float> %reg0, i32 1 - %r2 = call float @llvm.AMDGPU.mul( float %r0, float %r1) - %vec = insertelement <4 x float> undef, float %r2, i32 0 - call void @llvm.R600.store.swizzle(<4 x float> %vec, i32 0, i32 0) - ret void -} - -declare float @llvm.AMDGPU.mul(float ,float ) readnone -declare void @llvm.R600.store.swizzle(<4 x float>, i32, i32) - -attributes #0 = { "ShaderType"="0" } \ No newline at end of file Index: test/CodeGen/AMDGPU/llvm.amdgpu.lrp.ll =================================================================== --- test/CodeGen/AMDGPU/llvm.amdgpu.lrp.ll +++ /dev/null @@ -1,13 +0,0 @@ -; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s -; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s - -declare float @llvm.AMDGPU.lrp(float, float, float) nounwind readnone - -; FUNC-LABEL: {{^}}test_lrp: -; SI: v_mad_f32 -; SI: v_mac_f32_e32 -define void @test_lrp(float addrspace(1)* %out, float %src0, float %src1, float %src2) nounwind { - %mad = call float @llvm.AMDGPU.lrp(float %src0, float %src1, float %src2) nounwind readnone - store float %mad, float addrspace(1)* %out, align 4 - ret void -} Index: test/CodeGen/AMDGPU/si-sgpr-spill.ll =================================================================== --- test/CodeGen/AMDGPU/si-sgpr-spill.ll +++ test/CodeGen/AMDGPU/si-sgpr-spill.ll @@ -4,6 +4,8 @@ ; These tests check that the compiler won't crash when it needs to spill ; SGPRs. +@ddxy_lds = external addrspace(3) global [64 x i32] + ; CHECK-LABEL: {{^}}main: ; CHECK: s_wqm @@ -19,9 +21,7 @@ ; Writing to M0 from an SMRD instruction will hang the GPU. ; CHECK-NOT: s_buffer_load_dword m0 ; CHECK: s_endpgm -@ddxy_lds = external addrspace(3) global [64 x i32] - -define void @main([17 x <16 x i8>] addrspace(2)* byval, [32 x <16 x i8>] addrspace(2)* byval, [16 x <32 x i8>] addrspace(2)* byval, float inreg, i32 inreg, <2 x i32>, <2 x i32>, <2 x i32>, <3 x i32>, <2 x i32>, <2 x i32>, <2 x i32>, float, float, float, float, float, float, float, float, float) #0 { +define void @main([17 x <16 x i8>] addrspace(2)* byval, [32 x <16 x i8>] addrspace(2)* byval, [16 x <32 x i8>] addrspace(2)* byval, float inreg, i32 inreg, <2 x i32>, <2 x i32>, <2 x i32>, <3 x i32>, <2 x i32>, <2 x i32>, <2 x i32>, float, float, float, float, float, float, float, float, float) #1 { main_body: %21 = getelementptr [17 x <16 x i8>], [17 x <16 x i8>] addrspace(2)* %0, i64 0, i32 0 %22 = load <16 x i8>, <16 x i8> addrspace(2)* %21, !tbaa !0 @@ -657,52 +657,9 @@ br label %LOOP65 } -; Function Attrs: nounwind readnone -declare float @llvm.SI.load.const(<16 x i8>, i32) #1 - -; Function Attrs: nounwind readnone -declare float @llvm.SI.fs.interp(i32, i32, i32, <2 x i32>) #1 - -; Function Attrs: readnone -declare i32 @llvm.SI.tid() #2 - -; Function Attrs: readonly -declare float @ceil(float) #3 - -; Function Attrs: readnone -declare float @llvm.amdgcn.rsq.f32(float) #2 - -; Function Attrs: nounwind readnone -declare <4 x float> @llvm.SI.sampled.v8i32(<8 x i32>, <32 x i8>, <16 x i8>, i32) #1 - -; Function Attrs: readnone -declare <4 x float> @llvm.AMDGPU.cube(<4 x float>) #2 - -; Function Attrs: readnone -declare float @fabs(float) #2 - -; Function Attrs: nounwind readnone -declare <4 x float> @llvm.SI.sample.v4i32(<4 x i32>, <32 x i8>, <16 x i8>, i32) #1 - -; Function Attrs: nounwind readonly -declare float @llvm.pow.f32(float, float) #4 - -; Function Attrs: nounwind readnone -declare i32 @llvm.SI.packf16(float, float) #1 - -declare void @llvm.SI.export(i32, i32, i32, i32, i32, float, float, float, float) - -attributes #0 = { "ShaderType"="0" } -attributes #1 = { nounwind readnone } -attributes #2 = { readnone } -attributes #3 = { readonly } -attributes #4 = { nounwind readonly } - -!0 = !{!"const", null, i32 1} - ; CHECK-LABEL: {{^}}main1: ; CHECK: s_endpgm -define void @main1([17 x <16 x i8>] addrspace(2)* byval, [32 x <16 x i8>] addrspace(2)* byval, [16 x <32 x i8>] addrspace(2)* byval, float inreg, i32 inreg, <2 x i32>, <2 x i32>, <2 x i32>, <3 x i32>, <2 x i32>, <2 x i32>, <2 x i32>, float, float, float, float, float, float, float, float, float) #0 { +define void @main1([17 x <16 x i8>] addrspace(2)* byval, [32 x <16 x i8>] addrspace(2)* byval, [16 x <32 x i8>] addrspace(2)* byval, float inreg, i32 inreg, <2 x i32>, <2 x i32>, <2 x i32>, <3 x i32>, <2 x i32>, <2 x i32>, <2 x i32>, float, float, float, float, float, float, float, float, float) #1 { main_body: %21 = getelementptr [17 x <16 x i8>], [17 x <16 x i8>] addrspace(2)* %0, i64 0, i32 0 %22 = load <16 x i8>, <16 x i8> addrspace(2)* %21, !tbaa !0 @@ -918,425 +875,439 @@ %231 = fmul float %227, 0x4012611180000000 %232 = fmul float %228, 0x4012611180000000 %233 = fmul float %229, 0x4012611180000000 - %234 = call float @llvm.AMDGPU.lrp(float %27, float %231, float 1.000000e+00) - %235 = call float @llvm.AMDGPU.lrp(float %27, float %232, float 1.000000e+00) - %236 = call float @llvm.AMDGPU.lrp(float %27, float %233, float 1.000000e+00) - %237 = fmul float %216, %184 - %238 = fmul float %217, %185 - %239 = fadd float %238, %237 - %240 = fmul float %218, %186 - %241 = fadd float %239, %240 - %242 = fmul float %216, %187 - %243 = fmul float %217, %188 - %244 = fadd float %243, %242 - %245 = fmul float %218, %189 - %246 = fadd float %244, %245 - %247 = fmul float %216, %190 - %248 = fmul float %217, %191 - %249 = fadd float %248, %247 - %250 = fmul float %218, %192 - %251 = fadd float %249, %250 - %252 = call float @llvm.AMDIL.clamp.(float %251, float 0.000000e+00, float 1.000000e+00) - %253 = fmul float %214, 0x3F5A36E2E0000000 - %254 = call float @llvm.AMDIL.clamp.(float %253, float 0.000000e+00, float 1.000000e+00) - %255 = fsub float -0.000000e+00, %254 - %256 = fadd float 1.000000e+00, %255 - %257 = call float @llvm.pow.f32(float %252, float 2.500000e-01) - %258 = fmul float %39, %257 - %259 = fmul float %241, %258 - %260 = fmul float %246, %258 - %261 = fmul float %259, %230 - %262 = fmul float %260, %230 - %263 = fadd float %252, 0x3EE4F8B580000000 - %264 = fsub float -0.000000e+00, %252 - %265 = fadd float 1.000000e+00, %264 - %266 = fmul float 1.200000e+01, %265 - %267 = fadd float %266, 4.000000e+00 - %268 = fsub float -0.000000e+00, %267 - %269 = fmul float %268, %263 - %270 = fsub float -0.000000e+00, %267 - %271 = fmul float %270, %263 - %272 = fsub float -0.000000e+00, %267 - %273 = fmul float %272, %263 - %274 = fdiv float 1.000000e+00, %269 - %275 = fdiv float 1.000000e+00, %271 - %276 = fdiv float 1.000000e+00, %273 - %277 = fmul float %261, %274 - %278 = fmul float %262, %275 - %279 = fmul float %263, %276 + %one.sub.a.i = fsub float 1.000000e+00, %27 + %result.i = fadd float %231, %one.sub.a.i + %one.sub.a.i43 = fsub float 1.000000e+00, %27 + %result.i44 = fadd float %232, %one.sub.a.i43 + %one.sub.a.i41 = fsub float 1.000000e+00, %27 + %result.i42 = fadd float %233, %one.sub.a.i41 + %234 = fmul float %216, %184 + %235 = fmul float %217, %185 + %236 = fadd float %235, %234 + %237 = fmul float %218, %186 + %238 = fadd float %236, %237 + %239 = fmul float %216, %187 + %240 = fmul float %217, %188 + %241 = fadd float %240, %239 + %242 = fmul float %218, %189 + %243 = fadd float %241, %242 + %244 = fmul float %216, %190 + %245 = fmul float %217, %191 + %246 = fadd float %245, %244 + %247 = fmul float %218, %192 + %248 = fadd float %246, %247 + %249 = call float @llvm.AMDIL.clamp.(float %248, float 0.000000e+00, float 1.000000e+00) + %250 = fmul float %214, 0x3F5A36E2E0000000 + %251 = call float @llvm.AMDIL.clamp.(float %250, float 0.000000e+00, float 1.000000e+00) + %252 = fsub float -0.000000e+00, %251 + %253 = fadd float 1.000000e+00, %252 + %254 = call float @llvm.pow.f32(float %249, float 2.500000e-01) + %255 = fmul float %39, %254 + %256 = fmul float %238, %255 + %257 = fmul float %243, %255 + %258 = fmul float %256, %230 + %259 = fmul float %257, %230 + %260 = fadd float %249, 0x3EE4F8B580000000 + %261 = fsub float -0.000000e+00, %249 + %262 = fadd float 1.000000e+00, %261 + %263 = fmul float 1.200000e+01, %262 + %264 = fadd float %263, 4.000000e+00 + %265 = fsub float -0.000000e+00, %264 + %266 = fmul float %265, %260 + %267 = fsub float -0.000000e+00, %264 + %268 = fmul float %267, %260 + %269 = fsub float -0.000000e+00, %264 + %270 = fmul float %269, %260 + %271 = fdiv float 1.000000e+00, %266 + %272 = fdiv float 1.000000e+00, %268 + %273 = fdiv float 1.000000e+00, %270 + %274 = fmul float %258, %271 + %275 = fmul float %259, %272 + %276 = fmul float %260, %273 br label %LOOP LOOP: ; preds = %LOOP, %main_body - %temp144.0 = phi float [ 1.000000e+00, %main_body ], [ %292, %LOOP ] - %temp168.0 = phi float [ %176, %main_body ], [ %288, %LOOP ] - %temp169.0 = phi float [ %177, %main_body ], [ %289, %LOOP ] - %temp170.0 = phi float [ %256, %main_body ], [ %290, %LOOP ] - %280 = bitcast float %temp168.0 to i32 - %281 = bitcast float %temp169.0 to i32 - %282 = insertelement <4 x i32> undef, i32 %280, i32 0 - %283 = insertelement <4 x i32> %282, i32 %281, i32 1 - %284 = insertelement <4 x i32> %283, i32 0, i32 2 - %285 = insertelement <4 x i32> %284, i32 undef, i32 3 - %286 = call <4 x float> @llvm.SI.samplel.v4i32(<4 x i32> %285, <32 x i8> %147, <16 x i8> %149, i32 2) - %287 = extractelement <4 x float> %286, i32 3 - %288 = fadd float %temp168.0, %277 - %289 = fadd float %temp169.0, %278 - %290 = fadd float %temp170.0, %279 - %291 = fsub float -0.000000e+00, %287 - %292 = fadd float %290, %291 - %293 = fcmp oge float 0.000000e+00, %292 - %294 = sext i1 %293 to i32 - %295 = bitcast i32 %294 to float - %296 = bitcast float %295 to i32 - %297 = icmp ne i32 %296, 0 - br i1 %297, label %IF189, label %LOOP + %temp144.0 = phi float [ 1.000000e+00, %main_body ], [ %289, %LOOP ] + %temp168.0 = phi float [ %176, %main_body ], [ %285, %LOOP ] + %temp169.0 = phi float [ %177, %main_body ], [ %286, %LOOP ] + %temp170.0 = phi float [ %253, %main_body ], [ %287, %LOOP ] + %277 = bitcast float %temp168.0 to i32 + %278 = bitcast float %temp169.0 to i32 + %279 = insertelement <4 x i32> undef, i32 %277, i32 0 + %280 = insertelement <4 x i32> %279, i32 %278, i32 1 + %281 = insertelement <4 x i32> %280, i32 0, i32 2 + %282 = insertelement <4 x i32> %281, i32 undef, i32 3 + %283 = call <4 x float> @llvm.SI.samplel.v4i32(<4 x i32> %282, <32 x i8> %147, <16 x i8> %149, i32 2) + %284 = extractelement <4 x float> %283, i32 3 + %285 = fadd float %temp168.0, %274 + %286 = fadd float %temp169.0, %275 + %287 = fadd float %temp170.0, %276 + %288 = fsub float -0.000000e+00, %284 + %289 = fadd float %287, %288 + %290 = fcmp oge float 0.000000e+00, %289 + %291 = sext i1 %290 to i32 + %292 = bitcast i32 %291 to float + %293 = bitcast float %292 to i32 + %294 = icmp ne i32 %293, 0 + br i1 %294, label %IF189, label %LOOP IF189: ; preds = %LOOP - %298 = extractelement <4 x float> %286, i32 0 - %299 = extractelement <4 x float> %286, i32 1 - %300 = extractelement <4 x float> %286, i32 2 - %301 = fsub float -0.000000e+00, %292 - %302 = fadd float %temp144.0, %301 - %303 = fdiv float 1.000000e+00, %302 - %304 = fmul float %292, %303 - %305 = fadd float %304, -1.000000e+00 - %306 = fmul float %305, %277 - %307 = fadd float %306, %288 - %308 = fmul float %305, %278 - %309 = fadd float %308, %289 - %310 = fsub float -0.000000e+00, %176 - %311 = fadd float %307, %310 - %312 = fsub float -0.000000e+00, %177 - %313 = fadd float %309, %312 - %314 = fadd float %176, %311 - %315 = fadd float %177, %313 - %316 = fmul float %311, %67 - %317 = fmul float %313, %68 - %318 = fmul float %316, %55 - %319 = fmul float %316, %56 - %320 = fmul float %317, %57 - %321 = fadd float %320, %318 - %322 = fmul float %317, %58 - %323 = fadd float %322, %319 - %324 = fadd float %178, %321 - %325 = fadd float %179, %323 - %326 = fmul float %316, %59 - %327 = fmul float %316, %60 - %328 = fmul float %316, %61 - %329 = fmul float %316, %62 - %330 = fmul float %317, %63 - %331 = fadd float %330, %326 - %332 = fmul float %317, %64 - %333 = fadd float %332, %327 - %334 = fmul float %317, %65 - %335 = fadd float %334, %328 - %336 = fmul float %317, %66 - %337 = fadd float %336, %329 - %338 = fadd float %168, %331 - %339 = fadd float %169, %333 - %340 = fadd float %170, %335 - %341 = fadd float %171, %337 - %342 = bitcast float %338 to i32 - %343 = bitcast float %339 to i32 - %344 = insertelement <2 x i32> undef, i32 %342, i32 0 - %345 = insertelement <2 x i32> %344, i32 %343, i32 1 - %346 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %345, <32 x i8> %135, <16 x i8> %137, i32 2) - %347 = extractelement <4 x float> %346, i32 0 - %348 = extractelement <4 x float> %346, i32 1 - %349 = extractelement <4 x float> %346, i32 2 - %350 = extractelement <4 x float> %346, i32 3 - %351 = fmul float %347, %23 - %352 = fmul float %348, %24 - %353 = fmul float %349, %25 - %354 = fmul float %350, %26 - %355 = fmul float %351, %180 - %356 = fmul float %352, %181 - %357 = fmul float %353, %182 - %358 = fmul float %354, %183 - %359 = fsub float -0.000000e+00, %350 - %360 = fadd float 1.000000e+00, %359 - %361 = fmul float %360, %49 - %362 = call float @llvm.AMDGPU.lrp(float %361, float %347, float %355) - %363 = call float @llvm.AMDGPU.lrp(float %361, float %348, float %356) - %364 = call float @llvm.AMDGPU.lrp(float %361, float %349, float %357) - %365 = bitcast float %340 to i32 - %366 = bitcast float %341 to i32 - %367 = insertelement <2 x i32> undef, i32 %365, i32 0 - %368 = insertelement <2 x i32> %367, i32 %366, i32 1 - %369 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %368, <32 x i8> %151, <16 x i8> %153, i32 2) - %370 = extractelement <4 x float> %369, i32 2 - %371 = fmul float %362, %234 - %372 = fmul float %363, %235 - %373 = fmul float %364, %236 - %374 = fmul float %358, %230 - %375 = bitcast float %314 to i32 - %376 = bitcast float %315 to i32 - %377 = insertelement <2 x i32> undef, i32 %375, i32 0 - %378 = insertelement <2 x i32> %377, i32 %376, i32 1 - %379 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %378, <32 x i8> %139, <16 x i8> %141, i32 2) - %380 = extractelement <4 x float> %379, i32 0 - %381 = extractelement <4 x float> %379, i32 1 - %382 = extractelement <4 x float> %379, i32 2 - %383 = extractelement <4 x float> %379, i32 3 - %384 = fcmp olt float 0.000000e+00, %382 - %385 = sext i1 %384 to i32 - %386 = bitcast i32 %385 to float - %387 = bitcast float %386 to i32 - %388 = icmp ne i32 %387, 0 - %.224 = select i1 %388, float %381, float %380 - %.225 = select i1 %388, float %383, float %381 - %389 = bitcast float %324 to i32 - %390 = bitcast float %325 to i32 - %391 = insertelement <2 x i32> undef, i32 %389, i32 0 - %392 = insertelement <2 x i32> %391, i32 %390, i32 1 - %393 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %392, <32 x i8> %143, <16 x i8> %145, i32 2) - %394 = extractelement <4 x float> %393, i32 0 - %395 = extractelement <4 x float> %393, i32 1 - %396 = extractelement <4 x float> %393, i32 2 - %397 = extractelement <4 x float> %393, i32 3 - %398 = fcmp olt float 0.000000e+00, %396 - %399 = sext i1 %398 to i32 - %400 = bitcast i32 %399 to float - %401 = bitcast float %400 to i32 - %402 = icmp ne i32 %401, 0 - %temp112.1 = select i1 %402, float %395, float %394 - %temp113.1 = select i1 %402, float %397, float %395 - %403 = fmul float %.224, 2.000000e+00 + %295 = extractelement <4 x float> %283, i32 0 + %296 = extractelement <4 x float> %283, i32 1 + %297 = extractelement <4 x float> %283, i32 2 + %298 = fsub float -0.000000e+00, %289 + %299 = fadd float %temp144.0, %298 + %300 = fdiv float 1.000000e+00, %299 + %301 = fmul float %289, %300 + %302 = fadd float %301, -1.000000e+00 + %303 = fmul float %302, %274 + %304 = fadd float %303, %285 + %305 = fmul float %302, %275 + %306 = fadd float %305, %286 + %307 = fsub float -0.000000e+00, %176 + %308 = fadd float %304, %307 + %309 = fsub float -0.000000e+00, %177 + %310 = fadd float %306, %309 + %311 = fadd float %176, %308 + %312 = fadd float %177, %310 + %313 = fmul float %308, %67 + %314 = fmul float %310, %68 + %315 = fmul float %313, %55 + %316 = fmul float %313, %56 + %317 = fmul float %314, %57 + %318 = fadd float %317, %315 + %319 = fmul float %314, %58 + %320 = fadd float %319, %316 + %321 = fadd float %178, %318 + %322 = fadd float %179, %320 + %323 = fmul float %313, %59 + %324 = fmul float %313, %60 + %325 = fmul float %313, %61 + %326 = fmul float %313, %62 + %327 = fmul float %314, %63 + %328 = fadd float %327, %323 + %329 = fmul float %314, %64 + %330 = fadd float %329, %324 + %331 = fmul float %314, %65 + %332 = fadd float %331, %325 + %333 = fmul float %314, %66 + %334 = fadd float %333, %326 + %335 = fadd float %168, %328 + %336 = fadd float %169, %330 + %337 = fadd float %170, %332 + %338 = fadd float %171, %334 + %339 = bitcast float %335 to i32 + %340 = bitcast float %336 to i32 + %341 = insertelement <2 x i32> undef, i32 %339, i32 0 + %342 = insertelement <2 x i32> %341, i32 %340, i32 1 + %343 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %342, <32 x i8> %135, <16 x i8> %137, i32 2) + %344 = extractelement <4 x float> %343, i32 0 + %345 = extractelement <4 x float> %343, i32 1 + %346 = extractelement <4 x float> %343, i32 2 + %347 = extractelement <4 x float> %343, i32 3 + %348 = fmul float %344, %23 + %349 = fmul float %345, %24 + %350 = fmul float %346, %25 + %351 = fmul float %347, %26 + %352 = fmul float %348, %180 + %353 = fmul float %349, %181 + %354 = fmul float %350, %182 + %355 = fmul float %351, %183 + %356 = fsub float -0.000000e+00, %347 + %357 = fadd float 1.000000e+00, %356 + %358 = fmul float %357, %49 + %one.sub.a.i37 = fsub float 1.000000e+00, %358 + %one.sub.ac.i38 = fmul float %one.sub.a.i37, %352 + %mul.i39 = fmul float %344, %352 + %result.i40 = fadd float %mul.i39, %one.sub.ac.i38 + %one.sub.a.i33 = fsub float 1.000000e+00, %358 + %one.sub.ac.i34 = fmul float %one.sub.a.i33, %353 + %mul.i35 = fmul float %345, %353 + %result.i36 = fadd float %mul.i35, %one.sub.ac.i34 + %one.sub.a.i29 = fsub float 1.000000e+00, %358 + %one.sub.ac.i30 = fmul float %one.sub.a.i29, %354 + %mul.i31 = fmul float %346, %354 + %result.i32 = fadd float %mul.i31, %one.sub.ac.i30 + %359 = bitcast float %337 to i32 + %360 = bitcast float %338 to i32 + %361 = insertelement <2 x i32> undef, i32 %359, i32 0 + %362 = insertelement <2 x i32> %361, i32 %360, i32 1 + %363 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %362, <32 x i8> %151, <16 x i8> %153, i32 2) + %364 = extractelement <4 x float> %363, i32 2 + %365 = fmul float %result.i40, %result.i + %366 = fmul float %result.i36, %result.i44 + %367 = fmul float %result.i32, %result.i42 + %368 = fmul float %355, %230 + %369 = bitcast float %311 to i32 + %370 = bitcast float %312 to i32 + %371 = insertelement <2 x i32> undef, i32 %369, i32 0 + %372 = insertelement <2 x i32> %371, i32 %370, i32 1 + %373 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %372, <32 x i8> %139, <16 x i8> %141, i32 2) + %374 = extractelement <4 x float> %373, i32 0 + %375 = extractelement <4 x float> %373, i32 1 + %376 = extractelement <4 x float> %373, i32 2 + %377 = extractelement <4 x float> %373, i32 3 + %378 = fcmp olt float 0.000000e+00, %376 + %379 = sext i1 %378 to i32 + %380 = bitcast i32 %379 to float + %381 = bitcast float %380 to i32 + %382 = icmp ne i32 %381, 0 + %.224 = select i1 %382, float %375, float %374 + %.225 = select i1 %382, float %377, float %375 + %383 = bitcast float %321 to i32 + %384 = bitcast float %322 to i32 + %385 = insertelement <2 x i32> undef, i32 %383, i32 0 + %386 = insertelement <2 x i32> %385, i32 %384, i32 1 + %387 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %386, <32 x i8> %143, <16 x i8> %145, i32 2) + %388 = extractelement <4 x float> %387, i32 0 + %389 = extractelement <4 x float> %387, i32 1 + %390 = extractelement <4 x float> %387, i32 2 + %391 = extractelement <4 x float> %387, i32 3 + %392 = fcmp olt float 0.000000e+00, %390 + %393 = sext i1 %392 to i32 + %394 = bitcast i32 %393 to float + %395 = bitcast float %394 to i32 + %396 = icmp ne i32 %395, 0 + %temp112.1 = select i1 %396, float %389, float %388 + %temp113.1 = select i1 %396, float %391, float %389 + %397 = fmul float %.224, 2.000000e+00 + %398 = fadd float %397, -1.000000e+00 + %399 = fmul float %.225, 2.000000e+00 + %400 = fadd float %399, -1.000000e+00 + %401 = fmul float %temp112.1, 2.000000e+00 + %402 = fadd float %401, -1.000000e+00 + %403 = fmul float %temp113.1, 2.000000e+00 %404 = fadd float %403, -1.000000e+00 - %405 = fmul float %.225, 2.000000e+00 - %406 = fadd float %405, -1.000000e+00 - %407 = fmul float %temp112.1, 2.000000e+00 - %408 = fadd float %407, -1.000000e+00 - %409 = fmul float %temp113.1, 2.000000e+00 - %410 = fadd float %409, -1.000000e+00 + %405 = fsub float -0.000000e+00, %398 + %406 = fmul float %405, %35 + %407 = fsub float -0.000000e+00, %400 + %408 = fmul float %407, %35 + %409 = fsub float -0.000000e+00, %402 + %410 = fmul float %409, %36 %411 = fsub float -0.000000e+00, %404 - %412 = fmul float %411, %35 - %413 = fsub float -0.000000e+00, %406 - %414 = fmul float %413, %35 - %415 = fsub float -0.000000e+00, %408 - %416 = fmul float %415, %36 - %417 = fsub float -0.000000e+00, %410 - %418 = fmul float %417, %36 - %419 = fmul float %416, %370 - %420 = fmul float %418, %370 - %421 = call float @fabs(float %412) - %422 = call float @fabs(float %414) - %423 = fsub float -0.000000e+00, %421 - %424 = fadd float 1.000000e+00, %423 - %425 = fsub float -0.000000e+00, %422 - %426 = fadd float 1.000000e+00, %425 - %427 = fmul float %424, %419 - %428 = fadd float %427, %412 - %429 = fmul float %426, %420 - %430 = fadd float %429, %414 - %431 = fmul float %428, %428 - %432 = fmul float %430, %430 - %433 = fadd float %431, %432 - %434 = fsub float -0.000000e+00, %433 - %435 = fadd float 0x3FF00068E0000000, %434 - %436 = call float @llvm.AMDIL.clamp.(float %435, float 0.000000e+00, float 1.000000e+00) - %437 = call float @llvm.amdgcn.rsq.f32(float %436) - %438 = fmul float %437, %436 - %439 = fsub float -0.000000e+00, %436 - %440 = call float @llvm.AMDGPU.cndlt(float %439, float %438, float 0.000000e+00) - %441 = fmul float %184, %428 - %442 = fmul float %185, %428 - %443 = fmul float %186, %428 - %444 = fmul float %187, %430 - %445 = fadd float %444, %441 - %446 = fmul float %188, %430 - %447 = fadd float %446, %442 - %448 = fmul float %189, %430 + %412 = fmul float %411, %36 + %413 = fmul float %410, %364 + %414 = fmul float %412, %364 + %415 = call float @fabs(float %406) + %416 = call float @fabs(float %408) + %417 = fsub float -0.000000e+00, %415 + %418 = fadd float 1.000000e+00, %417 + %419 = fsub float -0.000000e+00, %416 + %420 = fadd float 1.000000e+00, %419 + %421 = fmul float %418, %413 + %422 = fadd float %421, %406 + %423 = fmul float %420, %414 + %424 = fadd float %423, %408 + %425 = fmul float %422, %422 + %426 = fmul float %424, %424 + %427 = fadd float %425, %426 + %428 = fsub float -0.000000e+00, %427 + %429 = fadd float 0x3FF00068E0000000, %428 + %430 = call float @llvm.AMDIL.clamp.(float %429, float 0.000000e+00, float 1.000000e+00) + %431 = call float @llvm.amdgcn.rsq.f32(float %430) + %432 = fmul float %431, %430 + %433 = fsub float -0.000000e+00, %430 + %cmp = fcmp ogt float 0.000000e+00, %433 + %434 = select i1 %cmp, float %432, float 0.000000e+00 + %435 = fmul float %184, %422 + %436 = fmul float %185, %422 + %437 = fmul float %186, %422 + %438 = fmul float %187, %424 + %439 = fadd float %438, %435 + %440 = fmul float %188, %424 + %441 = fadd float %440, %436 + %442 = fmul float %189, %424 + %443 = fadd float %442, %437 + %444 = fmul float %190, %434 + %445 = fadd float %444, %439 + %446 = fmul float %191, %434 + %447 = fadd float %446, %441 + %448 = fmul float %192, %434 %449 = fadd float %448, %443 - %450 = fmul float %190, %440 - %451 = fadd float %450, %445 - %452 = fmul float %191, %440 - %453 = fadd float %452, %447 - %454 = fmul float %192, %440 - %455 = fadd float %454, %449 - %456 = fmul float %451, %451 - %457 = fmul float %453, %453 - %458 = fadd float %457, %456 - %459 = fmul float %455, %455 - %460 = fadd float %458, %459 - %461 = call float @llvm.amdgcn.rsq.f32(float %460) - %462 = fmul float %451, %461 - %463 = fmul float %453, %461 - %464 = fmul float %455, %461 - %465 = fcmp olt float 0.000000e+00, %219 - %466 = sext i1 %465 to i32 - %467 = bitcast i32 %466 to float - %468 = bitcast float %467 to i32 - %469 = icmp ne i32 %468, 0 - br i1 %469, label %IF198, label %ENDIF197 + %450 = fmul float %445, %445 + %451 = fmul float %447, %447 + %452 = fadd float %451, %450 + %453 = fmul float %449, %449 + %454 = fadd float %452, %453 + %455 = call float @llvm.amdgcn.rsq.f32(float %454) + %456 = fmul float %445, %455 + %457 = fmul float %447, %455 + %458 = fmul float %449, %455 + %459 = fcmp olt float 0.000000e+00, %219 + %460 = sext i1 %459 to i32 + %461 = bitcast i32 %460 to float + %462 = bitcast float %461 to i32 + %463 = icmp ne i32 %462, 0 + br i1 %463, label %IF198, label %ENDIF197 IF198: ; preds = %IF189 - %470 = fsub float -0.000000e+00, %462 - %471 = fsub float -0.000000e+00, %463 - %472 = fsub float -0.000000e+00, %464 + %464 = fsub float -0.000000e+00, %456 + %465 = fsub float -0.000000e+00, %457 + %466 = fsub float -0.000000e+00, %458 br label %ENDIF197 -ENDIF197: ; preds = %IF189, %IF198 - %temp14.0 = phi float [ %472, %IF198 ], [ %464, %IF189 ] - %temp13.0 = phi float [ %471, %IF198 ], [ %463, %IF189 ] - %temp12.0 = phi float [ %470, %IF198 ], [ %462, %IF189 ] - %473 = bitcast float %220 to i32 - %474 = bitcast float %221 to i32 - %475 = insertelement <2 x i32> undef, i32 %473, i32 0 - %476 = insertelement <2 x i32> %475, i32 %474, i32 1 - %477 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %476, <32 x i8> %159, <16 x i8> %161, i32 2) - %478 = extractelement <4 x float> %477, i32 0 - %479 = extractelement <4 x float> %477, i32 1 - %480 = extractelement <4 x float> %477, i32 2 - %481 = extractelement <4 x float> %477, i32 3 - %482 = fmul float %478, %40 - %483 = fadd float %482, %41 - %484 = fmul float %479, %40 - %485 = fadd float %484, %41 - %486 = fmul float %480, %40 - %487 = fadd float %486, %41 - %488 = fmul float %481, %42 - %489 = fadd float %488, %43 - %490 = bitcast float %172 to i32 - %491 = bitcast float %173 to i32 - %492 = insertelement <2 x i32> undef, i32 %490, i32 0 - %493 = insertelement <2 x i32> %492, i32 %491, i32 1 - %494 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %493, <32 x i8> %155, <16 x i8> %157, i32 2) - %495 = extractelement <4 x float> %494, i32 0 - %496 = extractelement <4 x float> %494, i32 1 - %497 = extractelement <4 x float> %494, i32 2 - %498 = extractelement <4 x float> %494, i32 3 - %499 = fmul float %498, 3.200000e+01 - %500 = fadd float %499, -1.600000e+01 - %501 = call float @llvm.AMDIL.exp.(float %500) - %502 = fmul float %495, %501 - %503 = fmul float %496, %501 - %504 = fmul float %497, %501 - %505 = fmul float %28, %502 - %506 = fadd float %505, %193 - %507 = fmul float %29, %503 - %508 = fadd float %507, %194 - %509 = fmul float %30, %504 - %510 = fadd float %509, %195 - %511 = fmul float %506, %489 - %512 = fmul float %508, %489 - %513 = fmul float %510, %489 - %514 = fmul float %489, 5.000000e-01 - %515 = fadd float %514, 5.000000e-01 - %516 = fmul float %483, %515 - %517 = fadd float %516, %511 - %518 = fmul float %485, %515 - %519 = fadd float %518, %512 - %520 = fmul float %487, %515 - %521 = fadd float %520, %513 - %522 = fmul float %517, %371 - %523 = fmul float %519, %372 - %524 = fmul float %521, %373 - %525 = fmul float %428, 0x3FDB272440000000 - %526 = fmul float %430, 0xBFDB272440000000 - %527 = fadd float %526, %525 - %528 = fmul float %440, 0x3FE99999A0000000 - %529 = fadd float %527, %528 - %530 = fmul float %529, 5.000000e-01 - %531 = fadd float %530, 0x3FE3333340000000 - %532 = fmul float %531, %531 - %533 = fmul float %522, %532 - %534 = fmul float %523, %532 - %535 = fmul float %524, %532 - %536 = fsub float -0.000000e+00, %72 - %537 = fsub float -0.000000e+00, %73 - %538 = fsub float -0.000000e+00, %74 - %539 = fmul float %temp12.0, %536 - %540 = fmul float %temp13.0, %537 - %541 = fadd float %540, %539 - %542 = fmul float %temp14.0, %538 - %543 = fadd float %541, %542 - %544 = call float @llvm.AMDIL.clamp.(float %543, float 0.000000e+00, float 1.000000e+00) - %545 = fmul float %371, %544 - %546 = fmul float %372, %544 - %547 = fmul float %373, %544 - %548 = fmul float %545, %69 - %549 = fmul float %546, %70 - %550 = fmul float %547, %71 - %551 = fsub float -0.000000e+00, %164 - %552 = fadd float %97, %551 - %553 = fsub float -0.000000e+00, %165 - %554 = fadd float %98, %553 - %555 = fsub float -0.000000e+00, %166 - %556 = fadd float %99, %555 - %557 = fmul float %552, %552 - %558 = fmul float %554, %554 - %559 = fadd float %558, %557 - %560 = fmul float %556, %556 +ENDIF197: ; preds = %IF198, %IF189 + %temp14.0 = phi float [ %466, %IF198 ], [ %458, %IF189 ] + %temp13.0 = phi float [ %465, %IF198 ], [ %457, %IF189 ] + %temp12.0 = phi float [ %464, %IF198 ], [ %456, %IF189 ] + %467 = bitcast float %220 to i32 + %468 = bitcast float %221 to i32 + %469 = insertelement <2 x i32> undef, i32 %467, i32 0 + %470 = insertelement <2 x i32> %469, i32 %468, i32 1 + %471 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %470, <32 x i8> %159, <16 x i8> %161, i32 2) + %472 = extractelement <4 x float> %471, i32 0 + %473 = extractelement <4 x float> %471, i32 1 + %474 = extractelement <4 x float> %471, i32 2 + %475 = extractelement <4 x float> %471, i32 3 + %476 = fmul float %472, %40 + %477 = fadd float %476, %41 + %478 = fmul float %473, %40 + %479 = fadd float %478, %41 + %480 = fmul float %474, %40 + %481 = fadd float %480, %41 + %482 = fmul float %475, %42 + %483 = fadd float %482, %43 + %484 = bitcast float %172 to i32 + %485 = bitcast float %173 to i32 + %486 = insertelement <2 x i32> undef, i32 %484, i32 0 + %487 = insertelement <2 x i32> %486, i32 %485, i32 1 + %488 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %487, <32 x i8> %155, <16 x i8> %157, i32 2) + %489 = extractelement <4 x float> %488, i32 0 + %490 = extractelement <4 x float> %488, i32 1 + %491 = extractelement <4 x float> %488, i32 2 + %492 = extractelement <4 x float> %488, i32 3 + %493 = fmul float %492, 3.200000e+01 + %494 = fadd float %493, -1.600000e+01 + %495 = call float @llvm.AMDIL.exp.(float %494) + %496 = fmul float %489, %495 + %497 = fmul float %490, %495 + %498 = fmul float %491, %495 + %499 = fmul float %28, %496 + %500 = fadd float %499, %193 + %501 = fmul float %29, %497 + %502 = fadd float %501, %194 + %503 = fmul float %30, %498 + %504 = fadd float %503, %195 + %505 = fmul float %500, %483 + %506 = fmul float %502, %483 + %507 = fmul float %504, %483 + %508 = fmul float %483, 5.000000e-01 + %509 = fadd float %508, 5.000000e-01 + %510 = fmul float %477, %509 + %511 = fadd float %510, %505 + %512 = fmul float %479, %509 + %513 = fadd float %512, %506 + %514 = fmul float %481, %509 + %515 = fadd float %514, %507 + %516 = fmul float %511, %365 + %517 = fmul float %513, %366 + %518 = fmul float %515, %367 + %519 = fmul float %422, 0x3FDB272440000000 + %520 = fmul float %424, 0xBFDB272440000000 + %521 = fadd float %520, %519 + %522 = fmul float %434, 0x3FE99999A0000000 + %523 = fadd float %521, %522 + %524 = fmul float %523, 5.000000e-01 + %525 = fadd float %524, 0x3FE3333340000000 + %526 = fmul float %525, %525 + %527 = fmul float %516, %526 + %528 = fmul float %517, %526 + %529 = fmul float %518, %526 + %530 = fsub float -0.000000e+00, %72 + %531 = fsub float -0.000000e+00, %73 + %532 = fsub float -0.000000e+00, %74 + %533 = fmul float %temp12.0, %530 + %534 = fmul float %temp13.0, %531 + %535 = fadd float %534, %533 + %536 = fmul float %temp14.0, %532 + %537 = fadd float %535, %536 + %538 = call float @llvm.AMDIL.clamp.(float %537, float 0.000000e+00, float 1.000000e+00) + %539 = fmul float %365, %538 + %540 = fmul float %366, %538 + %541 = fmul float %367, %538 + %542 = fmul float %539, %69 + %543 = fmul float %540, %70 + %544 = fmul float %541, %71 + %545 = fsub float -0.000000e+00, %164 + %546 = fadd float %97, %545 + %547 = fsub float -0.000000e+00, %165 + %548 = fadd float %98, %547 + %549 = fsub float -0.000000e+00, %166 + %550 = fadd float %99, %549 + %551 = fmul float %546, %546 + %552 = fmul float %548, %548 + %553 = fadd float %552, %551 + %554 = fmul float %550, %550 + %555 = fadd float %553, %554 + %556 = call float @llvm.amdgcn.rsq.f32(float %555) + %557 = fmul float %556, %555 + %558 = fsub float -0.000000e+00, %555 + %cmp1 = fcmp ogt float %558, 0.000000e+00 + %559 = select i1 %cmp1, float %557, float 0.000000e+00 + %560 = fsub float -0.000000e+00, %84 %561 = fadd float %559, %560 - %562 = call float @llvm.amdgcn.rsq.f32(float %561) - %563 = fmul float %562, %561 - %564 = fsub float -0.000000e+00, %561 - %565 = call float @llvm.AMDGPU.cndlt(float %564, float %563, float 0.000000e+00) + %562 = fsub float -0.000000e+00, %83 + %563 = fadd float %559, %562 + %564 = fsub float -0.000000e+00, %82 + %565 = fadd float %559, %564 %566 = fsub float -0.000000e+00, %84 - %567 = fadd float %565, %566 + %567 = fadd float %83, %566 %568 = fsub float -0.000000e+00, %83 - %569 = fadd float %565, %568 + %569 = fadd float %82, %568 %570 = fsub float -0.000000e+00, %82 - %571 = fadd float %565, %570 - %572 = fsub float -0.000000e+00, %84 - %573 = fadd float %83, %572 - %574 = fsub float -0.000000e+00, %83 - %575 = fadd float %82, %574 - %576 = fsub float -0.000000e+00, %82 - %577 = fadd float %81, %576 - %578 = fdiv float 1.000000e+00, %573 - %579 = fdiv float 1.000000e+00, %575 - %580 = fdiv float 1.000000e+00, %577 - %581 = fmul float %567, %578 - %582 = fmul float %569, %579 - %583 = fmul float %571, %580 - %584 = fcmp olt float %565, %83 - %585 = sext i1 %584 to i32 - %586 = bitcast i32 %585 to float - %587 = bitcast float %586 to i32 - %588 = icmp ne i32 %587, 0 - br i1 %588, label %ENDIF200, label %ELSE202 + %571 = fadd float %81, %570 + %572 = fdiv float 1.000000e+00, %567 + %573 = fdiv float 1.000000e+00, %569 + %574 = fdiv float 1.000000e+00, %571 + %575 = fmul float %561, %572 + %576 = fmul float %563, %573 + %577 = fmul float %565, %574 + %578 = fcmp olt float %559, %83 + %579 = sext i1 %578 to i32 + %580 = bitcast i32 %579 to float + %581 = bitcast float %580 to i32 + %582 = icmp ne i32 %581, 0 + br i1 %582, label %ENDIF200, label %ELSE202 ELSE202: ; preds = %ENDIF197 - %589 = fcmp olt float %565, %82 - %590 = sext i1 %589 to i32 - %591 = bitcast i32 %590 to float - %592 = bitcast float %591 to i32 - %593 = icmp ne i32 %592, 0 - br i1 %593, label %ENDIF200, label %ELSE205 + %583 = fcmp olt float %559, %82 + %584 = sext i1 %583 to i32 + %585 = bitcast i32 %584 to float + %586 = bitcast float %585 to i32 + %587 = icmp ne i32 %586, 0 + br i1 %587, label %ENDIF200, label %ELSE205 ENDIF200: ; preds = %ELSE205, %ELSE202, %ENDIF197 - %temp80.0 = phi float [ %581, %ENDIF197 ], [ %.226, %ELSE205 ], [ %582, %ELSE202 ] + %temp80.0 = phi float [ %575, %ENDIF197 ], [ %.226, %ELSE205 ], [ %576, %ELSE202 ] %temp88.0 = phi float [ %122, %ENDIF197 ], [ %.227, %ELSE205 ], [ %120, %ELSE202 ] %temp89.0 = phi float [ %123, %ENDIF197 ], [ %.228, %ELSE205 ], [ %121, %ELSE202 ] %temp90.0 = phi float [ %120, %ENDIF197 ], [ %116, %ELSE205 ], [ %118, %ELSE202 ] %temp91.0 = phi float [ %121, %ENDIF197 ], [ %117, %ELSE205 ], [ %119, %ELSE202 ] - %594 = fcmp olt float %565, %83 - %595 = sext i1 %594 to i32 - %596 = bitcast i32 %595 to float - %597 = bitcast float %596 to i32 - %598 = icmp ne i32 %597, 0 - br i1 %598, label %ENDIF209, label %ELSE211 + %588 = fcmp olt float %559, %83 + %589 = sext i1 %588 to i32 + %590 = bitcast i32 %589 to float + %591 = bitcast float %590 to i32 + %592 = icmp ne i32 %591, 0 + br i1 %592, label %ENDIF209, label %ELSE211 ELSE205: ; preds = %ELSE202 - %599 = fcmp olt float %565, %81 - %600 = sext i1 %599 to i32 - %601 = bitcast i32 %600 to float - %602 = bitcast float %601 to i32 - %603 = icmp ne i32 %602, 0 - %.226 = select i1 %603, float %583, float 1.000000e+00 - %.227 = select i1 %603, float %118, float %116 - %.228 = select i1 %603, float %119, float %117 + %593 = fcmp olt float %559, %81 + %594 = sext i1 %593 to i32 + %595 = bitcast i32 %594 to float + %596 = bitcast float %595 to i32 + %597 = icmp ne i32 %596, 0 + %.226 = select i1 %597, float %577, float 1.000000e+00 + %.227 = select i1 %597, float %118, float %116 + %.228 = select i1 %597, float %119, float %117 br label %ENDIF200 ELSE211: ; preds = %ENDIF200 - %604 = fcmp olt float %565, %82 - %605 = sext i1 %604 to i32 - %606 = bitcast i32 %605 to float - %607 = bitcast float %606 to i32 - %608 = icmp ne i32 %607, 0 - br i1 %608, label %ENDIF209, label %ELSE214 + %598 = fcmp olt float %559, %82 + %599 = sext i1 %598 to i32 + %600 = bitcast i32 %599 to float + %601 = bitcast float %600 to i32 + %602 = icmp ne i32 %601, 0 + br i1 %602, label %ENDIF209, label %ELSE214 ENDIF209: ; preds = %ELSE214, %ELSE211, %ENDIF200 %temp52.0 = phi float [ %108, %ENDIF200 ], [ %100, %ELSE214 ], [ %104, %ELSE211 ] @@ -1347,232 +1318,286 @@ %temp69.0 = phi float [ %113, %ENDIF200 ], [ %.231, %ELSE214 ], [ %109, %ELSE211 ] %temp70.0 = phi float [ %114, %ENDIF200 ], [ %.232, %ELSE214 ], [ %110, %ELSE211 ] %temp71.0 = phi float [ %115, %ENDIF200 ], [ %.233, %ELSE214 ], [ %111, %ELSE211 ] - %609 = fmul float %164, %85 - %610 = fmul float %165, %86 - %611 = fadd float %609, %610 - %612 = fmul float %166, %87 - %613 = fadd float %611, %612 - %614 = fmul float %167, %88 - %615 = fadd float %613, %614 - %616 = fmul float %164, %89 - %617 = fmul float %165, %90 - %618 = fadd float %616, %617 - %619 = fmul float %166, %91 - %620 = fadd float %618, %619 - %621 = fmul float %167, %92 - %622 = fadd float %620, %621 - %623 = fmul float %164, %93 - %624 = fmul float %165, %94 - %625 = fadd float %623, %624 - %626 = fmul float %166, %95 - %627 = fadd float %625, %626 - %628 = fmul float %167, %96 - %629 = fadd float %627, %628 - %630 = fsub float -0.000000e+00, %78 - %631 = fadd float 1.000000e+00, %630 - %632 = call float @fabs(float %615) - %633 = call float @fabs(float %622) - %634 = fcmp oge float %631, %632 + %603 = fmul float %164, %85 + %604 = fmul float %165, %86 + %605 = fadd float %603, %604 + %606 = fmul float %166, %87 + %607 = fadd float %605, %606 + %608 = fmul float %167, %88 + %609 = fadd float %607, %608 + %610 = fmul float %164, %89 + %611 = fmul float %165, %90 + %612 = fadd float %610, %611 + %613 = fmul float %166, %91 + %614 = fadd float %612, %613 + %615 = fmul float %167, %92 + %616 = fadd float %614, %615 + %617 = fmul float %164, %93 + %618 = fmul float %165, %94 + %619 = fadd float %617, %618 + %620 = fmul float %166, %95 + %621 = fadd float %619, %620 + %622 = fmul float %167, %96 + %623 = fadd float %621, %622 + %624 = fsub float -0.000000e+00, %78 + %625 = fadd float 1.000000e+00, %624 + %626 = call float @fabs(float %609) + %627 = call float @fabs(float %616) + %628 = fcmp oge float %625, %626 + %629 = sext i1 %628 to i32 + %630 = bitcast i32 %629 to float + %631 = bitcast float %630 to i32 + %632 = and i32 %631, 1065353216 + %633 = bitcast i32 %632 to float + %634 = fcmp oge float %625, %627 %635 = sext i1 %634 to i32 %636 = bitcast i32 %635 to float %637 = bitcast float %636 to i32 %638 = and i32 %637, 1065353216 %639 = bitcast i32 %638 to float - %640 = fcmp oge float %631, %633 - %641 = sext i1 %640 to i32 - %642 = bitcast i32 %641 to float - %643 = bitcast float %642 to i32 - %644 = and i32 %643, 1065353216 - %645 = bitcast i32 %644 to float - %646 = fmul float %639, %645 - %647 = fmul float %629, %646 - %648 = fmul float %615, %temp68.0 - %649 = fadd float %648, %temp70.0 - %650 = fmul float %622, %temp69.0 - %651 = fadd float %650, %temp71.0 - %652 = fmul float %615, %temp52.0 - %653 = fadd float %652, %temp54.0 - %654 = fmul float %622, %temp53.0 - %655 = fadd float %654, %temp55.0 - %656 = fadd float %temp80.0, -1.000000e+00 - %657 = fmul float %656, %77 - %658 = fadd float %657, 1.000000e+00 - %659 = call float @llvm.AMDIL.clamp.(float %658, float 0.000000e+00, float 1.000000e+00) - %660 = bitcast float %649 to i32 - %661 = bitcast float %651 to i32 - %662 = bitcast float 0.000000e+00 to i32 - %663 = insertelement <4 x i32> undef, i32 %660, i32 0 - %664 = insertelement <4 x i32> %663, i32 %661, i32 1 - %665 = insertelement <4 x i32> %664, i32 %662, i32 2 - %666 = insertelement <4 x i32> %665, i32 undef, i32 3 - %667 = call <4 x float> @llvm.SI.samplel.v4i32(<4 x i32> %666, <32 x i8> %127, <16 x i8> %129, i32 2) - %668 = extractelement <4 x float> %667, i32 0 - %669 = extractelement <4 x float> %667, i32 1 - %670 = bitcast float %653 to i32 - %671 = bitcast float %655 to i32 - %672 = bitcast float 0.000000e+00 to i32 - %673 = insertelement <4 x i32> undef, i32 %670, i32 0 - %674 = insertelement <4 x i32> %673, i32 %671, i32 1 - %675 = insertelement <4 x i32> %674, i32 %672, i32 2 - %676 = insertelement <4 x i32> %675, i32 undef, i32 3 - %677 = call <4 x float> @llvm.SI.samplel.v4i32(<4 x i32> %676, <32 x i8> %127, <16 x i8> %129, i32 2) - %678 = extractelement <4 x float> %677, i32 0 - %679 = extractelement <4 x float> %677, i32 1 - %680 = fsub float -0.000000e+00, %669 - %681 = fadd float 1.000000e+00, %680 + %640 = fmul float %633, %639 + %641 = fmul float %623, %640 + %642 = fmul float %609, %temp68.0 + %643 = fadd float %642, %temp70.0 + %644 = fmul float %616, %temp69.0 + %645 = fadd float %644, %temp71.0 + %646 = fmul float %609, %temp52.0 + %647 = fadd float %646, %temp54.0 + %648 = fmul float %616, %temp53.0 + %649 = fadd float %648, %temp55.0 + %650 = fadd float %temp80.0, -1.000000e+00 + %651 = fmul float %650, %77 + %652 = fadd float %651, 1.000000e+00 + %653 = call float @llvm.AMDIL.clamp.(float %652, float 0.000000e+00, float 1.000000e+00) + %654 = bitcast float %643 to i32 + %655 = bitcast float %645 to i32 + %656 = bitcast float 0.000000e+00 to i32 + %657 = insertelement <4 x i32> undef, i32 %654, i32 0 + %658 = insertelement <4 x i32> %657, i32 %655, i32 1 + %659 = insertelement <4 x i32> %658, i32 %656, i32 2 + %660 = insertelement <4 x i32> %659, i32 undef, i32 3 + %661 = call <4 x float> @llvm.SI.samplel.v4i32(<4 x i32> %660, <32 x i8> %127, <16 x i8> %129, i32 2) + %662 = extractelement <4 x float> %661, i32 0 + %663 = extractelement <4 x float> %661, i32 1 + %664 = bitcast float %647 to i32 + %665 = bitcast float %649 to i32 + %666 = bitcast float 0.000000e+00 to i32 + %667 = insertelement <4 x i32> undef, i32 %664, i32 0 + %668 = insertelement <4 x i32> %667, i32 %665, i32 1 + %669 = insertelement <4 x i32> %668, i32 %666, i32 2 + %670 = insertelement <4 x i32> %669, i32 undef, i32 3 + %671 = call <4 x float> @llvm.SI.samplel.v4i32(<4 x i32> %670, <32 x i8> %127, <16 x i8> %129, i32 2) + %672 = extractelement <4 x float> %671, i32 0 + %673 = extractelement <4 x float> %671, i32 1 + %674 = fsub float -0.000000e+00, %663 + %675 = fadd float 1.000000e+00, %674 + %676 = fsub float -0.000000e+00, %673 + %677 = fadd float 1.000000e+00, %676 + %678 = fmul float %675, 2.500000e-01 + %679 = fmul float %677, 2.500000e-01 + %680 = fsub float -0.000000e+00, %678 + %681 = fadd float %662, %680 %682 = fsub float -0.000000e+00, %679 - %683 = fadd float 1.000000e+00, %682 - %684 = fmul float %681, 2.500000e-01 - %685 = fmul float %683, 2.500000e-01 - %686 = fsub float -0.000000e+00, %684 - %687 = fadd float %668, %686 - %688 = fsub float -0.000000e+00, %685 - %689 = fadd float %678, %688 - %690 = fmul float %647, %temp88.0 - %691 = fadd float %690, %temp89.0 - %692 = fmul float %647, %temp90.0 - %693 = fadd float %692, %temp91.0 - %694 = call float @llvm.AMDIL.clamp.(float %691, float 0.000000e+00, float 1.000000e+00) - %695 = call float @llvm.AMDIL.clamp.(float %693, float 0.000000e+00, float 1.000000e+00) + %683 = fadd float %672, %682 + %684 = fmul float %641, %temp88.0 + %685 = fadd float %684, %temp89.0 + %686 = fmul float %641, %temp90.0 + %687 = fadd float %686, %temp91.0 + %688 = call float @llvm.AMDIL.clamp.(float %685, float 0.000000e+00, float 1.000000e+00) + %689 = call float @llvm.AMDIL.clamp.(float %687, float 0.000000e+00, float 1.000000e+00) + %690 = fsub float -0.000000e+00, %688 + %691 = fadd float %662, %690 + %692 = fsub float -0.000000e+00, %689 + %693 = fadd float %672, %692 + %694 = fmul float %662, %662 + %695 = fmul float %672, %672 %696 = fsub float -0.000000e+00, %694 - %697 = fadd float %668, %696 + %697 = fadd float %681, %696 %698 = fsub float -0.000000e+00, %695 - %699 = fadd float %678, %698 - %700 = fmul float %668, %668 - %701 = fmul float %678, %678 - %702 = fsub float -0.000000e+00, %700 - %703 = fadd float %687, %702 - %704 = fsub float -0.000000e+00, %701 - %705 = fadd float %689, %704 - %706 = fcmp uge float %703, %75 - %707 = select i1 %706, float %703, float %75 - %708 = fcmp uge float %705, %75 - %709 = select i1 %708, float %705, float %75 - %710 = fmul float %697, %697 - %711 = fadd float %710, %707 - %712 = fmul float %699, %699 - %713 = fadd float %712, %709 - %714 = fdiv float 1.000000e+00, %711 - %715 = fdiv float 1.000000e+00, %713 - %716 = fmul float %707, %714 - %717 = fmul float %709, %715 - %718 = fcmp oge float %697, 0.000000e+00 - %719 = sext i1 %718 to i32 - %720 = bitcast i32 %719 to float - %721 = bitcast float %720 to i32 - %722 = icmp ne i32 %721, 0 - %.229 = select i1 %722, float 1.000000e+00, float %716 - %723 = fcmp oge float %699, 0.000000e+00 - %724 = sext i1 %723 to i32 - %725 = bitcast i32 %724 to float - %726 = bitcast float %725 to i32 - %727 = icmp ne i32 %726, 0 - %temp28.0 = select i1 %727, float 1.000000e+00, float %717 - %728 = call float @llvm.AMDGPU.lrp(float %659, float %temp28.0, float %.229) - %729 = call float @llvm.pow.f32(float %728, float %76) - %730 = fmul float %729, %79 - %731 = fadd float %730, %80 - %732 = call float @llvm.AMDIL.clamp.(float %731, float 0.000000e+00, float 1.000000e+00) - %733 = fmul float %732, %732 - %734 = fmul float 2.000000e+00, %732 - %735 = fsub float -0.000000e+00, %734 - %736 = fadd float 3.000000e+00, %735 - %737 = fmul float %733, %736 - %738 = fmul float %548, %737 - %739 = fmul float %549, %737 - %740 = fmul float %550, %737 - %741 = fmul float %738, %515 - %742 = fadd float %741, %533 - %743 = fmul float %739, %515 - %744 = fadd float %743, %534 - %745 = fmul float %740, %515 - %746 = fadd float %745, %535 - %747 = call float @llvm.AMDGPU.lrp(float %230, float %287, float 1.000000e+00) - %748 = call float @llvm.AMDGPU.lrp(float %37, float %298, float 1.000000e+00) - %749 = call float @llvm.AMDGPU.lrp(float %37, float %299, float 1.000000e+00) - %750 = call float @llvm.AMDGPU.lrp(float %37, float %300, float 1.000000e+00) - %751 = call float @llvm.AMDGPU.lrp(float %38, float %747, float 1.000000e+00) - %752 = fmul float %748, %751 - %753 = fmul float %749, %751 - %754 = fmul float %750, %751 - %755 = fmul float %742, %752 - %756 = fmul float %744, %753 - %757 = fmul float %746, %754 - %758 = fmul float %temp12.0, %216 - %759 = fmul float %temp13.0, %217 - %760 = fadd float %759, %758 - %761 = fmul float %temp14.0, %218 - %762 = fadd float %760, %761 - %763 = call float @fabs(float %762) - %764 = fmul float %763, %763 - %765 = fmul float %764, %50 - %766 = fadd float %765, %51 - %767 = call float @llvm.AMDIL.clamp.(float %766, float 0.000000e+00, float 1.000000e+00) - %768 = fsub float -0.000000e+00, %767 - %769 = fadd float 1.000000e+00, %768 - %770 = fmul float %33, %769 - %771 = fmul float %33, %769 - %772 = fmul float %33, %769 - %773 = fmul float %34, %769 - %774 = call float @llvm.AMDGPU.lrp(float %770, float %31, float %755) - %775 = call float @llvm.AMDGPU.lrp(float %771, float %31, float %756) - %776 = call float @llvm.AMDGPU.lrp(float %772, float %31, float %757) - %777 = call float @llvm.AMDGPU.lrp(float %773, float %32, float %374) - %778 = fcmp uge float %774, 0x3E6FFFFE60000000 - %779 = select i1 %778, float %774, float 0x3E6FFFFE60000000 - %780 = fcmp uge float %775, 0x3E6FFFFE60000000 - %781 = select i1 %780, float %775, float 0x3E6FFFFE60000000 - %782 = fcmp uge float %776, 0x3E6FFFFE60000000 - %783 = select i1 %782, float %776, float 0x3E6FFFFE60000000 - %784 = fcmp uge float %779, 6.550400e+04 - %785 = select i1 %784, float 6.550400e+04, float %779 - %786 = fcmp uge float %781, 6.550400e+04 - %787 = select i1 %786, float 6.550400e+04, float %781 - %788 = fcmp uge float %783, 6.550400e+04 - %789 = select i1 %788, float 6.550400e+04, float %783 - %790 = fmul float %777, %52 - %791 = fadd float %790, %53 - %792 = call float @llvm.AMDIL.clamp.(float %791, float 0.000000e+00, float 1.000000e+00) - %793 = call i32 @llvm.SI.packf16(float %785, float %787) - %794 = bitcast i32 %793 to float - %795 = call i32 @llvm.SI.packf16(float %789, float %792) - %796 = bitcast i32 %795 to float - call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %794, float %796, float %794, float %796) + %699 = fadd float %683, %698 + %700 = fcmp uge float %697, %75 + %701 = select i1 %700, float %697, float %75 + %702 = fcmp uge float %699, %75 + %703 = select i1 %702, float %699, float %75 + %704 = fmul float %691, %691 + %705 = fadd float %704, %701 + %706 = fmul float %693, %693 + %707 = fadd float %706, %703 + %708 = fdiv float 1.000000e+00, %705 + %709 = fdiv float 1.000000e+00, %707 + %710 = fmul float %701, %708 + %711 = fmul float %703, %709 + %712 = fcmp oge float %691, 0.000000e+00 + %713 = sext i1 %712 to i32 + %714 = bitcast i32 %713 to float + %715 = bitcast float %714 to i32 + %716 = icmp ne i32 %715, 0 + %.229 = select i1 %716, float 1.000000e+00, float %710 + %717 = fcmp oge float %693, 0.000000e+00 + %718 = sext i1 %717 to i32 + %719 = bitcast i32 %718 to float + %720 = bitcast float %719 to i32 + %721 = icmp ne i32 %720, 0 + %temp28.0 = select i1 %721, float 1.000000e+00, float %711 + %one.sub.a.i25 = fsub float 1.000000e+00, %653 + %one.sub.ac.i26 = fmul float %one.sub.a.i25, %.229 + %mul.i27 = fmul float %temp28.0, %.229 + %result.i28 = fadd float %mul.i27, %one.sub.ac.i26 + %722 = call float @llvm.pow.f32(float %result.i28, float %76) + %723 = fmul float %722, %79 + %724 = fadd float %723, %80 + %725 = call float @llvm.AMDIL.clamp.(float %724, float 0.000000e+00, float 1.000000e+00) + %726 = fmul float %725, %725 + %727 = fmul float 2.000000e+00, %725 + %728 = fsub float -0.000000e+00, %727 + %729 = fadd float 3.000000e+00, %728 + %730 = fmul float %726, %729 + %731 = fmul float %542, %730 + %732 = fmul float %543, %730 + %733 = fmul float %544, %730 + %734 = fmul float %731, %509 + %735 = fadd float %734, %527 + %736 = fmul float %732, %509 + %737 = fadd float %736, %528 + %738 = fmul float %733, %509 + %739 = fadd float %738, %529 + %one.sub.a.i23 = fsub float 1.000000e+00, %230 + %result.i24 = fadd float %284, %one.sub.a.i23 + %one.sub.a.i21 = fsub float 1.000000e+00, %37 + %result.i22 = fadd float %295, %one.sub.a.i21 + %one.sub.a.i19 = fsub float 1.000000e+00, %37 + %result.i20 = fadd float %296, %one.sub.a.i19 + %one.sub.a.i17 = fsub float 1.000000e+00, %37 + %result.i18 = fadd float %297, %one.sub.a.i17 + %one.sub.a.i15 = fsub float 1.000000e+00, %38 + %result.i16 = fadd float %result.i24, %one.sub.a.i15 + %740 = fmul float %result.i22, %result.i16 + %741 = fmul float %result.i20, %result.i16 + %742 = fmul float %result.i18, %result.i16 + %743 = fmul float %735, %740 + %744 = fmul float %737, %741 + %745 = fmul float %739, %742 + %746 = fmul float %temp12.0, %216 + %747 = fmul float %temp13.0, %217 + %748 = fadd float %747, %746 + %749 = fmul float %temp14.0, %218 + %750 = fadd float %748, %749 + %751 = call float @fabs(float %750) + %752 = fmul float %751, %751 + %753 = fmul float %752, %50 + %754 = fadd float %753, %51 + %755 = call float @llvm.AMDIL.clamp.(float %754, float 0.000000e+00, float 1.000000e+00) + %756 = fsub float -0.000000e+00, %755 + %757 = fadd float 1.000000e+00, %756 + %758 = fmul float %33, %757 + %759 = fmul float %33, %757 + %760 = fmul float %33, %757 + %761 = fmul float %34, %757 + %one.sub.a.i11 = fsub float 1.000000e+00, %758 + %one.sub.ac.i12 = fmul float %one.sub.a.i11, %743 + %mul.i13 = fmul float %31, %743 + %result.i14 = fadd float %mul.i13, %one.sub.ac.i12 + %one.sub.a.i7 = fsub float 1.000000e+00, %759 + %one.sub.ac.i8 = fmul float %one.sub.a.i7, %744 + %mul.i9 = fmul float %31, %744 + %result.i10 = fadd float %mul.i9, %one.sub.ac.i8 + %one.sub.a.i3 = fsub float 1.000000e+00, %760 + %one.sub.ac.i4 = fmul float %one.sub.a.i3, %745 + %mul.i5 = fmul float %31, %745 + %result.i6 = fadd float %mul.i5, %one.sub.ac.i4 + %one.sub.a.i1 = fsub float 1.000000e+00, %761 + %one.sub.ac.i = fmul float %one.sub.a.i1, %368 + %mul.i = fmul float %32, %368 + %result.i2 = fadd float %mul.i, %one.sub.ac.i + %762 = fcmp uge float %result.i14, 0x3E6FFFFE60000000 + %763 = select i1 %762, float %result.i14, float 0x3E6FFFFE60000000 + %764 = fcmp uge float %result.i10, 0x3E6FFFFE60000000 + %765 = select i1 %764, float %result.i10, float 0x3E6FFFFE60000000 + %766 = fcmp uge float %result.i6, 0x3E6FFFFE60000000 + %767 = select i1 %766, float %result.i6, float 0x3E6FFFFE60000000 + %768 = fcmp uge float %763, 6.550400e+04 + %769 = select i1 %768, float 6.550400e+04, float %763 + %770 = fcmp uge float %765, 6.550400e+04 + %771 = select i1 %770, float 6.550400e+04, float %765 + %772 = fcmp uge float %767, 6.550400e+04 + %773 = select i1 %772, float 6.550400e+04, float %767 + %774 = fmul float %result.i2, %52 + %775 = fadd float %774, %53 + %776 = call float @llvm.AMDIL.clamp.(float %775, float 0.000000e+00, float 1.000000e+00) + %777 = call i32 @llvm.SI.packf16(float %769, float %771) + %778 = bitcast i32 %777 to float + %779 = call i32 @llvm.SI.packf16(float %773, float %776) + %780 = bitcast i32 %779 to float + call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %778, float %780, float %778, float %780) ret void ELSE214: ; preds = %ELSE211 - %797 = fcmp olt float %565, %81 - %798 = sext i1 %797 to i32 - %799 = bitcast i32 %798 to float - %800 = bitcast float %799 to i32 - %801 = icmp ne i32 %800, 0 - %.230 = select i1 %801, float %104, float %100 - %.231 = select i1 %801, float %105, float %101 - %.232 = select i1 %801, float %106, float %102 - %.233 = select i1 %801, float %107, float %103 + %781 = fcmp olt float %559, %81 + %782 = sext i1 %781 to i32 + %783 = bitcast i32 %782 to float + %784 = bitcast float %783 to i32 + %785 = icmp ne i32 %784, 0 + %.230 = select i1 %785, float %104, float %100 + %.231 = select i1 %785, float %105, float %101 + %.232 = select i1 %785, float %106, float %102 + %.233 = select i1 %785, float %107, float %103 br label %ENDIF209 } ; Function Attrs: readnone -declare float @llvm.AMDIL.clamp.(float, float, float) #2 +declare float @llvm.AMDIL.clamp.(float, float, float) #3 + +; Function Attrs: nounwind readnone +declare <4 x float> @llvm.SI.sample.v2i32(<2 x i32>, <32 x i8>, <16 x i8>, i32) #2 ; Function Attrs: nounwind readnone -declare <4 x float> @llvm.SI.sample.v2i32(<2 x i32>, <32 x i8>, <16 x i8>, i32) #1 +declare <4 x float> @llvm.SI.samplel.v4i32(<4 x i32>, <32 x i8>, <16 x i8>, i32) #2 ; Function Attrs: readnone -declare float @llvm.AMDGPU.lrp(float, float, float) #2 +declare float @llvm.AMDIL.exp.(float) #3 + +; Function Attrs: nounwind readnone +declare float @llvm.SI.load.const(<16 x i8>, i32) #2 ; Function Attrs: nounwind readnone -declare <4 x float> @llvm.SI.samplel.v4i32(<4 x i32>, <32 x i8>, <16 x i8>, i32) #1 +declare float @llvm.SI.fs.interp(i32, i32, i32, <2 x i32>) #2 ; Function Attrs: readnone -declare float @llvm.AMDGPU.cndlt(float, float, float) #2 +declare i32 @llvm.SI.tid() #3 + +; Function Attrs: nounwind readonly +declare float @ceil(float) #4 + +; Function Attrs: nounwind readnone +declare float @llvm.amdgcn.rsq.f32(float) #2 + +; Function Attrs: nounwind readnone +declare <4 x float> @llvm.SI.sampled.v8i32(<8 x i32>, <32 x i8>, <16 x i8>, i32) #2 + +; Function Attrs: readnone +declare <4 x float> @llvm.AMDGPU.cube(<4 x float>) #3 ; Function Attrs: readnone -declare float @llvm.AMDIL.exp.(float) #2 +declare float @fabs(float) #3 + +; Function Attrs: nounwind readnone +declare <4 x float> @llvm.SI.sample.v4i32(<4 x i32>, <32 x i8>, <16 x i8>, i32) #2 + +; Function Attrs: nounwind readnone +declare float @llvm.pow.f32(float, float) #2 + +; Function Attrs: nounwind readnone +declare i32 @llvm.SI.packf16(float, float) #2 + +declare void @llvm.SI.export(i32, i32, i32, i32, i32, float, float, float, float) + + + +attributes #0 = { alwaysinline nounwind readnone } +attributes #1 = { "ShaderType"="0" } +attributes #2 = { nounwind readnone } +attributes #3 = { readnone } +attributes #4 = { nounwind readonly } -attributes #0 = { "ShaderType"="0" } -attributes #1 = { nounwind readnone } -attributes #2 = { readnone } -attributes #3 = { nounwind readonly } -attributes #4 = { readonly } +!0 = !{!1, !1, i64 0, i32 1} +!1 = !{!"const", null} Index: test/CodeGen/AMDGPU/si-spill-cf.ll =================================================================== --- test/CodeGen/AMDGPU/si-spill-cf.ll +++ test/CodeGen/AMDGPU/si-spill-cf.ll @@ -3,10 +3,10 @@ ; If this occurs it is likely due to reordering and the restore was ; originally supposed to happen before SI_END_CF. + ; SI: s_or_b64 exec, exec, [[SAVED:s\[[0-9]+:[0-9]+\]|[a-z]+]] ; SI-NOT: v_readlane_b32 [[SAVED]] - -define void @main() #0 { +define void @main() #1 { main_body: %0 = call float @llvm.SI.load.const(<16 x i8> undef, i32 16) %1 = call float @llvm.SI.load.const(<16 x i8> undef, i32 32) @@ -84,180 +84,182 @@ br i1 %67, label %ENDLOOP, label %ENDIF ENDLOOP: ; preds = %ELSE2566, %LOOP - %68 = call float @llvm.AMDGPU.lrp(float %0, float undef, float undef) - call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 0, float undef, float %68, float undef, float 1.000000e+00) + %one.sub.a.i = fsub float 1.000000e+00, %0 + %one.sub.ac.i = fmul float %one.sub.a.i, undef + %result.i = fadd float fmul (float undef, float undef), %one.sub.ac.i + call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 0, float undef, float %result.i, float undef, float 1.000000e+00) ret void ENDIF: ; preds = %LOOP - %69 = fsub float %2, undef - %70 = fsub float %3, undef - %71 = fsub float %4, undef - %72 = fmul float %69, 0.000000e+00 + %68 = fsub float %2, undef + %69 = fsub float %3, undef + %70 = fsub float %4, undef + %71 = fmul float %68, 0.000000e+00 + %72 = fmul float %69, undef %73 = fmul float %70, undef - %74 = fmul float %71, undef - %75 = fsub float %6, undef - %76 = fsub float %7, undef - %77 = fmul float %75, undef - %78 = fmul float %76, 0.000000e+00 - %79 = call float @llvm.minnum.f32(float %74, float %78) - %80 = call float @llvm.maxnum.f32(float %72, float 0.000000e+00) - %81 = call float @llvm.maxnum.f32(float %73, float %77) - %82 = call float @llvm.maxnum.f32(float undef, float %79) - %83 = call float @llvm.minnum.f32(float %80, float %81) - %84 = call float @llvm.minnum.f32(float %83, float undef) - %85 = fsub float %14, undef - %86 = fsub float %15, undef - %87 = fsub float %16, undef + %74 = fsub float %6, undef + %75 = fsub float %7, undef + %76 = fmul float %74, undef + %77 = fmul float %75, 0.000000e+00 + %78 = call float @llvm.minnum.f32(float %73, float %77) + %79 = call float @llvm.maxnum.f32(float %71, float 0.000000e+00) + %80 = call float @llvm.maxnum.f32(float %72, float %76) + %81 = call float @llvm.maxnum.f32(float undef, float %78) + %82 = call float @llvm.minnum.f32(float %79, float %80) + %83 = call float @llvm.minnum.f32(float %82, float undef) + %84 = fsub float %14, undef + %85 = fsub float %15, undef + %86 = fsub float %16, undef + %87 = fmul float %84, undef %88 = fmul float %85, undef %89 = fmul float %86, undef - %90 = fmul float %87, undef - %91 = fsub float %17, undef - %92 = fsub float %18, undef - %93 = fsub float %19, undef - %94 = fmul float %91, 0.000000e+00 + %90 = fsub float %17, undef + %91 = fsub float %18, undef + %92 = fsub float %19, undef + %93 = fmul float %90, 0.000000e+00 + %94 = fmul float %91, undef %95 = fmul float %92, undef - %96 = fmul float %93, undef - %97 = call float @llvm.minnum.f32(float %89, float %95) - %98 = call float @llvm.maxnum.f32(float %88, float %94) - %99 = call float @llvm.maxnum.f32(float %90, float %96) - %100 = call float @llvm.maxnum.f32(float undef, float %97) - %101 = call float @llvm.maxnum.f32(float %100, float undef) - %102 = call float @llvm.minnum.f32(float %98, float undef) - %103 = call float @llvm.minnum.f32(float %102, float %99) - %104 = fsub float %30, undef - %105 = fsub float %31, undef + %96 = call float @llvm.minnum.f32(float %88, float %94) + %97 = call float @llvm.maxnum.f32(float %87, float %93) + %98 = call float @llvm.maxnum.f32(float %89, float %95) + %99 = call float @llvm.maxnum.f32(float undef, float %96) + %100 = call float @llvm.maxnum.f32(float %99, float undef) + %101 = call float @llvm.minnum.f32(float %97, float undef) + %102 = call float @llvm.minnum.f32(float %101, float %98) + %103 = fsub float %30, undef + %104 = fsub float %31, undef + %105 = fmul float %103, 0.000000e+00 %106 = fmul float %104, 0.000000e+00 - %107 = fmul float %105, 0.000000e+00 - %108 = call float @llvm.minnum.f32(float undef, float %106) + %107 = call float @llvm.minnum.f32(float undef, float %105) + %108 = call float @llvm.maxnum.f32(float undef, float %106) %109 = call float @llvm.maxnum.f32(float undef, float %107) - %110 = call float @llvm.maxnum.f32(float undef, float %108) - %111 = call float @llvm.maxnum.f32(float %110, float undef) - %112 = call float @llvm.minnum.f32(float undef, float %109) - %113 = fsub float %32, undef - %114 = fsub float %33, undef - %115 = fsub float %34, undef - %116 = fmul float %113, 0.000000e+00 + %110 = call float @llvm.maxnum.f32(float %109, float undef) + %111 = call float @llvm.minnum.f32(float undef, float %108) + %112 = fsub float %32, undef + %113 = fsub float %33, undef + %114 = fsub float %34, undef + %115 = fmul float %112, 0.000000e+00 + %116 = fmul float %113, undef %117 = fmul float %114, undef - %118 = fmul float %115, undef - %119 = fsub float %35, undef - %120 = fsub float %36, undef - %121 = fsub float %37, undef + %118 = fsub float %35, undef + %119 = fsub float %36, undef + %120 = fsub float %37, undef + %121 = fmul float %118, undef %122 = fmul float %119, undef %123 = fmul float %120, undef - %124 = fmul float %121, undef + %124 = call float @llvm.minnum.f32(float %115, float %121) %125 = call float @llvm.minnum.f32(float %116, float %122) %126 = call float @llvm.minnum.f32(float %117, float %123) - %127 = call float @llvm.minnum.f32(float %118, float %124) - %128 = call float @llvm.maxnum.f32(float %125, float %126) - %129 = call float @llvm.maxnum.f32(float %128, float %127) - %130 = fsub float %38, undef - %131 = fsub float %39, undef - %132 = fsub float %40, undef - %133 = fmul float %130, 0.000000e+00 + %127 = call float @llvm.maxnum.f32(float %124, float %125) + %128 = call float @llvm.maxnum.f32(float %127, float %126) + %129 = fsub float %38, undef + %130 = fsub float %39, undef + %131 = fsub float %40, undef + %132 = fmul float %129, 0.000000e+00 + %133 = fmul float %130, undef %134 = fmul float %131, undef - %135 = fmul float %132, undef - %136 = fsub float %41, undef - %137 = fsub float %42, undef - %138 = fsub float %43, undef + %135 = fsub float %41, undef + %136 = fsub float %42, undef + %137 = fsub float %43, undef + %138 = fmul float %135, undef %139 = fmul float %136, undef %140 = fmul float %137, undef - %141 = fmul float %138, undef + %141 = call float @llvm.minnum.f32(float %132, float %138) %142 = call float @llvm.minnum.f32(float %133, float %139) %143 = call float @llvm.minnum.f32(float %134, float %140) - %144 = call float @llvm.minnum.f32(float %135, float %141) - %145 = call float @llvm.maxnum.f32(float %142, float %143) - %146 = call float @llvm.maxnum.f32(float %145, float %144) - %147 = fsub float %44, undef - %148 = fsub float %45, undef - %149 = fsub float %46, undef + %144 = call float @llvm.maxnum.f32(float %141, float %142) + %145 = call float @llvm.maxnum.f32(float %144, float %143) + %146 = fsub float %44, undef + %147 = fsub float %45, undef + %148 = fsub float %46, undef + %149 = fmul float %146, 0.000000e+00 %150 = fmul float %147, 0.000000e+00 - %151 = fmul float %148, 0.000000e+00 - %152 = fmul float %149, undef - %153 = fsub float %47, undef - %154 = fsub float %48, undef - %155 = fsub float %49, undef - %156 = fmul float %153, undef - %157 = fmul float %154, 0.000000e+00 - %158 = fmul float %155, undef + %151 = fmul float %148, undef + %152 = fsub float %47, undef + %153 = fsub float %48, undef + %154 = fsub float %49, undef + %155 = fmul float %152, undef + %156 = fmul float %153, 0.000000e+00 + %157 = fmul float %154, undef + %158 = call float @llvm.minnum.f32(float %149, float %155) %159 = call float @llvm.minnum.f32(float %150, float %156) %160 = call float @llvm.minnum.f32(float %151, float %157) - %161 = call float @llvm.minnum.f32(float %152, float %158) - %162 = call float @llvm.maxnum.f32(float %159, float %160) - %163 = call float @llvm.maxnum.f32(float %162, float %161) - %164 = fsub float %50, undef - %165 = fsub float %51, undef - %166 = fsub float %52, undef - %167 = fmul float %164, undef + %161 = call float @llvm.maxnum.f32(float %158, float %159) + %162 = call float @llvm.maxnum.f32(float %161, float %160) + %163 = fsub float %50, undef + %164 = fsub float %51, undef + %165 = fsub float %52, undef + %166 = fmul float %163, undef + %167 = fmul float %164, 0.000000e+00 %168 = fmul float %165, 0.000000e+00 - %169 = fmul float %166, 0.000000e+00 - %170 = fsub float %53, undef - %171 = fsub float %54, undef - %172 = fsub float %55, undef - %173 = fdiv float 1.000000e+00, %temp18.0 + %169 = fsub float %53, undef + %170 = fsub float %54, undef + %171 = fsub float %55, undef + %172 = fdiv float 1.000000e+00, %temp18.0 + %173 = fmul float %169, undef %174 = fmul float %170, undef - %175 = fmul float %171, undef - %176 = fmul float %172, %173 + %175 = fmul float %171, %172 + %176 = call float @llvm.minnum.f32(float %166, float %173) %177 = call float @llvm.minnum.f32(float %167, float %174) %178 = call float @llvm.minnum.f32(float %168, float %175) - %179 = call float @llvm.minnum.f32(float %169, float %176) - %180 = call float @llvm.maxnum.f32(float %177, float %178) - %181 = call float @llvm.maxnum.f32(float %180, float %179) - %182 = fsub float %62, undef - %183 = fsub float %63, undef - %184 = fsub float %64, undef - %185 = fmul float %182, 0.000000e+00 + %179 = call float @llvm.maxnum.f32(float %176, float %177) + %180 = call float @llvm.maxnum.f32(float %179, float %178) + %181 = fsub float %62, undef + %182 = fsub float %63, undef + %183 = fsub float %64, undef + %184 = fmul float %181, 0.000000e+00 + %185 = fmul float %182, undef %186 = fmul float %183, undef - %187 = fmul float %184, undef - %188 = fsub float %65, undef - %189 = fsub float %66, undef + %187 = fsub float %65, undef + %188 = fsub float %66, undef + %189 = fmul float %187, undef %190 = fmul float %188, undef - %191 = fmul float %189, undef + %191 = call float @llvm.maxnum.f32(float %184, float %189) %192 = call float @llvm.maxnum.f32(float %185, float %190) - %193 = call float @llvm.maxnum.f32(float %186, float %191) - %194 = call float @llvm.maxnum.f32(float %187, float undef) - %195 = call float @llvm.minnum.f32(float %192, float %193) - %196 = call float @llvm.minnum.f32(float %195, float %194) - %.temp292.7 = select i1 undef, float %163, float undef - %temp292.9 = select i1 false, float %181, float %.temp292.7 + %193 = call float @llvm.maxnum.f32(float %186, float undef) + %194 = call float @llvm.minnum.f32(float %191, float %192) + %195 = call float @llvm.minnum.f32(float %194, float %193) + %.temp292.7 = select i1 undef, float %162, float undef + %temp292.9 = select i1 false, float %180, float %.temp292.7 %.temp292.9 = select i1 undef, float undef, float %temp292.9 - %197 = fcmp ogt float undef, 0.000000e+00 - %198 = fcmp olt float undef, %196 - %199 = and i1 %197, %198 - %200 = fcmp olt float undef, %.temp292.9 - %201 = and i1 %199, %200 - %temp292.11 = select i1 %201, float undef, float %.temp292.9 + %196 = fcmp ogt float undef, 0.000000e+00 + %197 = fcmp olt float undef, %195 + %198 = and i1 %196, %197 + %199 = fcmp olt float undef, %.temp292.9 + %200 = and i1 %198, %199 + %temp292.11 = select i1 %200, float undef, float %.temp292.9 br i1 undef, label %IF2565, label %ELSE2566 IF2565: ; preds = %ENDIF br i1 false, label %ENDIF2582, label %ELSE2584 ELSE2566: ; preds = %ENDIF - %202 = fcmp oeq float %temp292.11, 1.000000e+04 - br i1 %202, label %ENDLOOP, label %ELSE2593 + %201 = fcmp oeq float %temp292.11, 1.000000e+04 + br i1 %201, label %ENDLOOP, label %ELSE2593 ENDIF2564: ; preds = %ENDIF2594, %ENDIF2588 %temp894.1 = phi float [ undef, %ENDIF2588 ], [ %temp894.2, %ENDIF2594 ] - %temp18.1 = phi float [ %219, %ENDIF2588 ], [ undef, %ENDIF2594 ] - %203 = fsub float %5, undef - %204 = fmul float %203, undef - %205 = call float @llvm.maxnum.f32(float undef, float %204) + %temp18.1 = phi float [ %218, %ENDIF2588 ], [ undef, %ENDIF2594 ] + %202 = fsub float %5, undef + %203 = fmul float %202, undef + %204 = call float @llvm.maxnum.f32(float undef, float %203) + %205 = call float @llvm.minnum.f32(float %204, float undef) %206 = call float @llvm.minnum.f32(float %205, float undef) - %207 = call float @llvm.minnum.f32(float %206, float undef) - %208 = fcmp ogt float undef, 0.000000e+00 - %209 = fcmp olt float undef, 1.000000e+00 - %210 = and i1 %208, %209 - %211 = fcmp olt float undef, %207 - %212 = and i1 %210, %211 - br i1 %212, label %ENDIF2795, label %ELSE2797 + %207 = fcmp ogt float undef, 0.000000e+00 + %208 = fcmp olt float undef, 1.000000e+00 + %209 = and i1 %207, %208 + %210 = fcmp olt float undef, %206 + %211 = and i1 %209, %210 + br i1 %211, label %ENDIF2795, label %ELSE2797 ELSE2584: ; preds = %IF2565 br label %ENDIF2582 ENDIF2582: ; preds = %ELSE2584, %IF2565 - %213 = fadd float %1, undef - %214 = fadd float 0.000000e+00, %213 - %floor = call float @llvm.floor.f32(float %214) - %215 = fsub float %214, %floor + %212 = fadd float %1, undef + %213 = fadd float 0.000000e+00, %212 + %floor = call float @llvm.floor.f32(float %213) + %214 = fsub float %213, %floor br i1 undef, label %IF2589, label %ELSE2590 IF2589: ; preds = %ENDIF2582 @@ -267,61 +269,61 @@ br label %ENDIF2588 ENDIF2588: ; preds = %ELSE2590, %IF2589 - %216 = fsub float 1.000000e+00, %215 - %217 = call float @llvm.sqrt.f32(float %216) - %218 = fmul float %217, undef - %219 = fadd float %218, undef + %215 = fsub float 1.000000e+00, %214 + %216 = call float @llvm.sqrt.f32(float %215) + %217 = fmul float %216, undef + %218 = fadd float %217, undef br label %ENDIF2564 ELSE2593: ; preds = %ELSE2566 - %220 = fcmp oeq float %temp292.11, %82 - %221 = fcmp olt float %82, %84 - %222 = and i1 %220, %221 - br i1 %222, label %ENDIF2594, label %ELSE2596 + %219 = fcmp oeq float %temp292.11, %81 + %220 = fcmp olt float %81, %83 + %221 = and i1 %219, %220 + br i1 %221, label %ENDIF2594, label %ELSE2596 ELSE2596: ; preds = %ELSE2593 - %223 = fcmp oeq float %temp292.11, %101 - %224 = fcmp olt float %101, %103 - %225 = and i1 %223, %224 - br i1 %225, label %ENDIF2594, label %ELSE2632 + %222 = fcmp oeq float %temp292.11, %100 + %223 = fcmp olt float %100, %102 + %224 = and i1 %222, %223 + br i1 %224, label %ENDIF2594, label %ELSE2632 ENDIF2594: ; preds = %ELSE2788, %ELSE2785, %ELSE2782, %ELSE2779, %IF2775, %ELSE2761, %ELSE2758, %IF2757, %ELSE2704, %ELSE2686, %ELSE2671, %ELSE2668, %IF2667, %ELSE2632, %ELSE2596, %ELSE2593 %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 ] - %226 = fmul float %temp894.2, undef + %225 = fmul float %temp894.2, undef br label %ENDIF2564 ELSE2632: ; preds = %ELSE2596 br i1 undef, label %ENDIF2594, label %ELSE2650 ELSE2650: ; preds = %ELSE2632 - %227 = fcmp oeq float %temp292.11, %111 - %228 = fcmp olt float %111, %112 - %229 = and i1 %227, %228 - br i1 %229, label %IF2667, label %ELSE2668 + %226 = fcmp oeq float %temp292.11, %110 + %227 = fcmp olt float %110, %111 + %228 = and i1 %226, %227 + br i1 %228, label %IF2667, label %ELSE2668 IF2667: ; preds = %ELSE2650 br i1 undef, label %ENDIF2594, label %ELSE2671 ELSE2668: ; preds = %ELSE2650 - %230 = fcmp oeq float %temp292.11, %129 - %231 = fcmp olt float %129, undef - %232 = and i1 %230, %231 - br i1 %232, label %ENDIF2594, label %ELSE2686 + %229 = fcmp oeq float %temp292.11, %128 + %230 = fcmp olt float %128, undef + %231 = and i1 %229, %230 + br i1 %231, label %ENDIF2594, label %ELSE2686 ELSE2671: ; preds = %IF2667 br label %ENDIF2594 ELSE2686: ; preds = %ELSE2668 - %233 = fcmp oeq float %temp292.11, %146 - %234 = fcmp olt float %146, undef - %235 = and i1 %233, %234 - br i1 %235, label %ENDIF2594, label %ELSE2704 + %232 = fcmp oeq float %temp292.11, %145 + %233 = fcmp olt float %145, undef + %234 = and i1 %232, %233 + br i1 %234, label %ENDIF2594, label %ELSE2704 ELSE2704: ; preds = %ELSE2686 - %236 = fcmp oeq float %temp292.11, %181 - %237 = fcmp olt float %181, undef - %238 = and i1 %236, %237 - br i1 %238, label %ENDIF2594, label %ELSE2740 + %235 = fcmp oeq float %temp292.11, %180 + %236 = fcmp olt float %180, undef + %237 = and i1 %235, %236 + br i1 %237, label %ENDIF2594, label %ELSE2740 ELSE2740: ; preds = %ELSE2704 br i1 undef, label %IF2757, label %ELSE2758 @@ -336,8 +338,8 @@ br label %ENDIF2594 IF2775: ; preds = %ELSE2758 - %239 = fcmp olt float undef, undef - br i1 %239, label %ENDIF2594, label %ELSE2779 + %238 = fcmp olt float undef, undef + br i1 %238, label %ENDIF2594, label %ELSE2779 ELSE2779: ; preds = %IF2775 br i1 undef, label %ENDIF2594, label %ELSE2782 @@ -346,39 +348,39 @@ br i1 undef, label %ENDIF2594, label %ELSE2785 ELSE2785: ; preds = %ELSE2782 - %240 = fcmp olt float undef, 0.000000e+00 - br i1 %240, label %ENDIF2594, label %ELSE2788 + %239 = fcmp olt float undef, 0.000000e+00 + br i1 %239, label %ENDIF2594, label %ELSE2788 ELSE2788: ; preds = %ELSE2785 - %241 = fcmp olt float 0.000000e+00, undef - %.2848 = select i1 %241, float -1.000000e+00, float 1.000000e+00 + %240 = fcmp olt float 0.000000e+00, undef + %.2848 = select i1 %240, float -1.000000e+00, float 1.000000e+00 br label %ENDIF2594 ELSE2797: ; preds = %ENDIF2564 - %242 = fsub float %8, undef - %243 = fsub float %9, undef - %244 = fsub float %10, undef + %241 = fsub float %8, undef + %242 = fsub float %9, undef + %243 = fsub float %10, undef + %244 = fmul float %241, undef %245 = fmul float %242, undef %246 = fmul float %243, undef - %247 = fmul float %244, undef - %248 = fsub float %11, undef - %249 = fsub float %12, undef - %250 = fsub float %13, undef + %247 = fsub float %11, undef + %248 = fsub float %12, undef + %249 = fsub float %13, undef + %250 = fmul float %247, undef %251 = fmul float %248, undef %252 = fmul float %249, undef - %253 = fmul float %250, undef + %253 = call float @llvm.minnum.f32(float %244, float %250) %254 = call float @llvm.minnum.f32(float %245, float %251) - %255 = call float @llvm.minnum.f32(float %246, float %252) - %256 = call float @llvm.maxnum.f32(float %247, float %253) - %257 = call float @llvm.maxnum.f32(float %254, float %255) - %258 = call float @llvm.maxnum.f32(float %257, float undef) - %259 = call float @llvm.minnum.f32(float undef, float %256) - %260 = fcmp ogt float %258, 0.000000e+00 - %261 = fcmp olt float %258, 1.000000e+00 - %262 = and i1 %260, %261 - %263 = fcmp olt float %258, %259 - %264 = and i1 %262, %263 - br i1 %264, label %ENDIF2795, label %ELSE2800 + %255 = call float @llvm.maxnum.f32(float %246, float %252) + %256 = call float @llvm.maxnum.f32(float %253, float %254) + %257 = call float @llvm.maxnum.f32(float %256, float undef) + %258 = call float @llvm.minnum.f32(float undef, float %255) + %259 = fcmp ogt float %257, 0.000000e+00 + %260 = fcmp olt float %257, 1.000000e+00 + %261 = and i1 %259, %260 + %262 = fcmp olt float %257, %258 + %263 = and i1 %261, %262 + br i1 %263, label %ENDIF2795, label %ELSE2800 ENDIF2795: ; preds = %ELSE2824, %ELSE2821, %ELSE2818, %ELSE2815, %ELSE2812, %ELSE2809, %ELSE2806, %ELSE2803, %ELSE2800, %ELSE2797, %ENDIF2564 br label %LOOP @@ -387,53 +389,53 @@ br i1 undef, label %ENDIF2795, label %ELSE2803 ELSE2803: ; preds = %ELSE2800 - %265 = fsub float %20, undef - %266 = fsub float %21, undef - %267 = fsub float %22, undef + %264 = fsub float %20, undef + %265 = fsub float %21, undef + %266 = fsub float %22, undef + %267 = fmul float %264, undef %268 = fmul float %265, undef - %269 = fmul float %266, undef - %270 = fmul float %267, 0.000000e+00 - %271 = fsub float %23, undef - %272 = fsub float %24, undef - %273 = fsub float %25, undef + %269 = fmul float %266, 0.000000e+00 + %270 = fsub float %23, undef + %271 = fsub float %24, undef + %272 = fsub float %25, undef + %273 = fmul float %270, undef %274 = fmul float %271, undef %275 = fmul float %272, undef - %276 = fmul float %273, undef - %277 = call float @llvm.minnum.f32(float %268, float %274) + %276 = call float @llvm.minnum.f32(float %267, float %273) + %277 = call float @llvm.maxnum.f32(float %268, float %274) %278 = call float @llvm.maxnum.f32(float %269, float %275) - %279 = call float @llvm.maxnum.f32(float %270, float %276) - %280 = call float @llvm.maxnum.f32(float %277, float undef) - %281 = call float @llvm.maxnum.f32(float %280, float undef) - %282 = call float @llvm.minnum.f32(float undef, float %278) - %283 = call float @llvm.minnum.f32(float %282, float %279) - %284 = fcmp ogt float %281, 0.000000e+00 - %285 = fcmp olt float %281, 1.000000e+00 - %286 = and i1 %284, %285 - %287 = fcmp olt float %281, %283 - %288 = and i1 %286, %287 - br i1 %288, label %ENDIF2795, label %ELSE2806 + %279 = call float @llvm.maxnum.f32(float %276, float undef) + %280 = call float @llvm.maxnum.f32(float %279, float undef) + %281 = call float @llvm.minnum.f32(float undef, float %277) + %282 = call float @llvm.minnum.f32(float %281, float %278) + %283 = fcmp ogt float %280, 0.000000e+00 + %284 = fcmp olt float %280, 1.000000e+00 + %285 = and i1 %283, %284 + %286 = fcmp olt float %280, %282 + %287 = and i1 %285, %286 + br i1 %287, label %ENDIF2795, label %ELSE2806 ELSE2806: ; preds = %ELSE2803 - %289 = fsub float %26, undef - %290 = fsub float %27, undef - %291 = fsub float %28, undef - %292 = fmul float %289, undef - %293 = fmul float %290, 0.000000e+00 - %294 = fmul float %291, undef - %295 = fsub float %29, undef - %296 = fmul float %295, undef - %297 = call float @llvm.minnum.f32(float %292, float %296) - %298 = call float @llvm.minnum.f32(float %293, float undef) - %299 = call float @llvm.maxnum.f32(float %294, float undef) - %300 = call float @llvm.maxnum.f32(float %297, float %298) - %301 = call float @llvm.maxnum.f32(float %300, float undef) - %302 = call float @llvm.minnum.f32(float undef, float %299) - %303 = fcmp ogt float %301, 0.000000e+00 - %304 = fcmp olt float %301, 1.000000e+00 - %305 = and i1 %303, %304 - %306 = fcmp olt float %301, %302 - %307 = and i1 %305, %306 - br i1 %307, label %ENDIF2795, label %ELSE2809 + %288 = fsub float %26, undef + %289 = fsub float %27, undef + %290 = fsub float %28, undef + %291 = fmul float %288, undef + %292 = fmul float %289, 0.000000e+00 + %293 = fmul float %290, undef + %294 = fsub float %29, undef + %295 = fmul float %294, undef + %296 = call float @llvm.minnum.f32(float %291, float %295) + %297 = call float @llvm.minnum.f32(float %292, float undef) + %298 = call float @llvm.maxnum.f32(float %293, float undef) + %299 = call float @llvm.maxnum.f32(float %296, float %297) + %300 = call float @llvm.maxnum.f32(float %299, float undef) + %301 = call float @llvm.minnum.f32(float undef, float %298) + %302 = fcmp ogt float %300, 0.000000e+00 + %303 = fcmp olt float %300, 1.000000e+00 + %304 = and i1 %302, %303 + %305 = fcmp olt float %300, %301 + %306 = and i1 %304, %305 + br i1 %306, label %ENDIF2795, label %ELSE2809 ELSE2809: ; preds = %ELSE2806 br i1 undef, label %ENDIF2795, label %ELSE2812 @@ -448,29 +450,29 @@ br i1 undef, label %ENDIF2795, label %ELSE2821 ELSE2821: ; preds = %ELSE2818 - %308 = fsub float %56, undef - %309 = fsub float %57, undef - %310 = fsub float %58, undef - %311 = fmul float %308, undef - %312 = fmul float %309, 0.000000e+00 - %313 = fmul float %310, undef - %314 = fsub float %59, undef - %315 = fsub float %60, undef - %316 = fsub float %61, undef + %307 = fsub float %56, undef + %308 = fsub float %57, undef + %309 = fsub float %58, undef + %310 = fmul float %307, undef + %311 = fmul float %308, 0.000000e+00 + %312 = fmul float %309, undef + %313 = fsub float %59, undef + %314 = fsub float %60, undef + %315 = fsub float %61, undef + %316 = fmul float %313, undef %317 = fmul float %314, undef %318 = fmul float %315, undef - %319 = fmul float %316, undef + %319 = call float @llvm.maxnum.f32(float %310, float %316) %320 = call float @llvm.maxnum.f32(float %311, float %317) %321 = call float @llvm.maxnum.f32(float %312, float %318) - %322 = call float @llvm.maxnum.f32(float %313, float %319) - %323 = call float @llvm.minnum.f32(float %320, float %321) - %324 = call float @llvm.minnum.f32(float %323, float %322) - %325 = fcmp ogt float undef, 0.000000e+00 - %326 = fcmp olt float undef, 1.000000e+00 - %327 = and i1 %325, %326 - %328 = fcmp olt float undef, %324 - %329 = and i1 %327, %328 - br i1 %329, label %ENDIF2795, label %ELSE2824 + %322 = call float @llvm.minnum.f32(float %319, float %320) + %323 = call float @llvm.minnum.f32(float %322, float %321) + %324 = fcmp ogt float undef, 0.000000e+00 + %325 = fcmp olt float undef, 1.000000e+00 + %326 = and i1 %324, %325 + %327 = fcmp olt float undef, %323 + %328 = and i1 %326, %327 + br i1 %328, label %ENDIF2795, label %ELSE2824 ELSE2824: ; preds = %ELSE2821 %.2849 = select i1 undef, float 0.000000e+00, float 1.000000e+00 @@ -478,25 +480,22 @@ } ; Function Attrs: nounwind readnone -declare float @llvm.SI.load.const(<16 x i8>, i32) #1 +declare float @llvm.SI.load.const(<16 x i8>, i32) #2 ; Function Attrs: nounwind readnone -declare float @llvm.floor.f32(float) #1 +declare float @llvm.floor.f32(float) #2 ; Function Attrs: nounwind readnone -declare float @llvm.sqrt.f32(float) #1 +declare float @llvm.sqrt.f32(float) #2 ; Function Attrs: nounwind readnone -declare float @llvm.minnum.f32(float, float) #1 +declare float @llvm.minnum.f32(float, float) #2 ; Function Attrs: nounwind readnone -declare float @llvm.maxnum.f32(float, float) #1 - -; Function Attrs: readnone -declare float @llvm.AMDGPU.lrp(float, float, float) #2 +declare float @llvm.maxnum.f32(float, float) #2 declare void @llvm.SI.export(i32, i32, i32, i32, i32, float, float, float, float) -attributes #0 = { "ShaderType"="0" "enable-no-nans-fp-math"="true" } -attributes #1 = { nounwind readnone } -attributes #2 = { readnone } +attributes #0 = { alwaysinline nounwind readnone } +attributes #1 = { "ShaderType"="0" "enable-no-nans-fp-math"="true" } +attributes #2 = { nounwind readnone }