[llvm] r258612 - AMDGPU: Remove more unused intrinsics
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 22 21:42:39 PST 2016
Author: arsenm
Date: Fri Jan 22 23:42:38 2016
New Revision: 258612
URL: http://llvm.org/viewvc/llvm-project?rev=258612&view=rev
Log:
AMDGPU: Remove more unused intrinsics
Replace tests with lrp with basic IR expansion
Removed:
llvm/trunk/test/CodeGen/AMDGPU/llvm.AMDGPU.legacy.rsq.ll
llvm/trunk/test/CodeGen/AMDGPU/llvm.AMDGPU.mul.ll
llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgpu.lrp.ll
Modified:
llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.h
llvm/trunk/lib/Target/AMDGPU/AMDGPUIntrinsics.td
llvm/trunk/lib/Target/AMDGPU/R600ISelLowering.cpp
llvm/trunk/lib/Target/AMDGPU/R600Instructions.td
llvm/trunk/lib/Target/AMDGPU/SIInstructions.td
llvm/trunk/test/CodeGen/AMDGPU/big_alu.ll
llvm/trunk/test/CodeGen/AMDGPU/si-sgpr-spill.ll
llvm/trunk/test/CodeGen/AMDGPU/si-spill-cf.ll
Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cpp?rev=258612&r1=258611&r2=258612&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.cpp Fri Jan 22 23:42:38 2016
@@ -917,17 +917,11 @@ SDValue AMDGPUTargetLowering::LowerINTRI
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 @@ SDValue AMDGPUTargetLowering::LowerINTRI
}
}
-/// 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,
Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.h?rev=258612&r1=258611&r2=258612&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.h (original)
+++ llvm/trunk/lib/Target/AMDGPU/AMDGPUISelLowering.h Fri Jan 22 23:42:38 2016
@@ -176,7 +176,6 @@ public:
SmallVectorImpl<SDValue> &Results,
SelectionDAG &DAG) const override;
- SDValue LowerIntrinsicLRP(SDValue Op, SelectionDAG &DAG) const;
SDValue CombineFMinMaxLegacy(SDLoc DL,
EVT VT,
SDValue LHS,
Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUIntrinsics.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUIntrinsics.td?rev=258612&r1=258611&r2=258612&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/AMDGPUIntrinsics.td (original)
+++ llvm/trunk/lib/Target/AMDGPU/AMDGPUIntrinsics.td Fri Jan 22 23:42:38 2016
@@ -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]>;
Modified: llvm/trunk/lib/Target/AMDGPU/R600ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/R600ISelLowering.cpp?rev=258612&r1=258611&r2=258612&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/R600ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/R600ISelLowering.cpp Fri Jan 22 23:42:38 2016
@@ -615,12 +615,6 @@ SDValue R600TargetLowering::LowerOperati
unsigned IntrinsicID =
cast<ConstantSDNode>(Op.getOperand(1))->getZExtValue();
switch (IntrinsicID) {
- case AMDGPUIntrinsic::AMDGPU_store_output: {
- int64_t RegIndex = cast<ConstantSDNode>(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] = {
Modified: llvm/trunk/lib/Target/AMDGPU/R600Instructions.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/R600Instructions.td?rev=258612&r1=258611&r2=258612&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/R600Instructions.td (original)
+++ llvm/trunk/lib/Target/AMDGPU/R600Instructions.td Fri Jan 22 23:42:38 2016
@@ -160,7 +160,8 @@ class R600_2OP <bits<11> inst, string op
let Inst{63-32} = Word1;
}
-class R600_2OP_Helper <bits<11> inst, string opName, SDPatternOperator node,
+class R600_2OP_Helper <bits<11> inst, string opName,
+ SDPatternOperator node = null_frag,
InstrItinClass itin = AnyALU> :
R600_2OP <inst, opName,
[(set R600_Reg32:$dst, (node R600_Reg32:$src0,
@@ -678,7 +679,7 @@ let Predicates = [isR600toCayman] in {
def ADD : R600_2OP_Helper <0x0, "ADD", fadd>;
// 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 @@ def FNEG_R600 : FNEG<R600_Reg32>;
// FIXME: Should be predicated on unsafe fp math.
multiclass DIV_Common <InstR600 recip_ieee> {
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))
>;
Modified: llvm/trunk/lib/Target/AMDGPU/SIInstructions.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIInstructions.td?rev=258612&r1=258611&r2=258612&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/SIInstructions.td (original)
+++ llvm/trunk/lib/Target/AMDGPU/SIInstructions.td Fri Jan 22 23:42:38 2016
@@ -1450,7 +1450,7 @@ defm V_SUBREV_F32 : VOP2Inst <vop2<0x5,
let isCommutable = 1 in {
defm V_MUL_LEGACY_F32 : VOP2Inst <vop2<0x7, 0x4>, "v_mul_legacy_f32",
- VOP_F32_F32_F32, int_AMDGPU_mul
+ VOP_F32_F32_F32
>;
defm V_MUL_F32 : VOP2Inst <vop2<0x8, 0x5>, "v_mul_f32",
@@ -2049,13 +2049,6 @@ def SI_CONSTDATA_PTR : InstSI <
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 : Pat <
def : POW_Common <V_LOG_F32_e32, V_EXP_F32_e32, V_MUL_LEGACY_F32_e32>;
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),
Modified: llvm/trunk/test/CodeGen/AMDGPU/big_alu.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/big_alu.ll?rev=258612&r1=258611&r2=258612&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/big_alu.ll (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/big_alu.ll Fri Jan 22 23:42:38 2016
@@ -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 @@ IF137:
%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 @@ ENDIF136:
%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 }
Removed: llvm/trunk/test/CodeGen/AMDGPU/llvm.AMDGPU.legacy.rsq.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/llvm.AMDGPU.legacy.rsq.ll?rev=258611&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/llvm.AMDGPU.legacy.rsq.ll (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/llvm.AMDGPU.legacy.rsq.ll (removed)
@@ -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
-}
Removed: llvm/trunk/test/CodeGen/AMDGPU/llvm.AMDGPU.mul.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/llvm.AMDGPU.mul.ll?rev=258611&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/llvm.AMDGPU.mul.ll (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/llvm.AMDGPU.mul.ll (removed)
@@ -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
Removed: llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgpu.lrp.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgpu.lrp.ll?rev=258611&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgpu.lrp.ll (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgpu.lrp.ll (removed)
@@ -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
-}
Modified: llvm/trunk/test/CodeGen/AMDGPU/si-sgpr-spill.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/si-sgpr-spill.ll?rev=258612&r1=258611&r2=258612&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/si-sgpr-spill.ll (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/si-sgpr-spill.ll Fri Jan 22 23:42:38 2016
@@ -4,6 +4,8 @@
; These tests check that the compiler won't crash when it needs to spill
; SGPRs.
+ at 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
- at 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 @@ ENDIF66:
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 @@ main_body:
%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 @@ ENDIF209:
%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}
Modified: llvm/trunk/test/CodeGen/AMDGPU/si-spill-cf.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/si-spill-cf.ll?rev=258612&r1=258611&r2=258612&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/si-spill-cf.ll (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/si-spill-cf.ll Fri Jan 22 23:42:38 2016
@@ -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 @@ LOOP:
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 @@ ELSE2590:
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 @@ ELSE2761:
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 @@ ELSE2782:
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 @@ ELSE2800:
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 @@ ELSE2818:
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 @@ ELSE2824:
}
; 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 }
More information about the llvm-commits
mailing list