; ModuleID = 'tgsi' define void @main([6 x <16 x i8>] addrspace(2)* byval, [17 x <16 x i8>] addrspace(2)* byval, [17 x <4 x i32>] addrspace(2)* byval, [34 x <8 x i32>] 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, i32, float, float) #0 { main_body: %22 = getelementptr [17 x <16 x i8>], [17 x <16 x i8>] addrspace(2)* %1, i64 0, i64 0 %23 = load <16 x i8>, <16 x i8> addrspace(2)* %22, align 16, !tbaa !0 %24 = call float @llvm.SI.load.const(<16 x i8> %23, i32 0) %25 = call float @llvm.SI.load.const(<16 x i8> %23, i32 4) %26 = call float @llvm.SI.load.const(<16 x i8> %23, i32 8) %27 = call float @llvm.SI.load.const(<16 x i8> %23, i32 20) %28 = call float @llvm.SI.load.const(<16 x i8> %23, i32 24) %29 = call float @llvm.SI.load.const(<16 x i8> %23, i32 28) %30 = call float @llvm.SI.load.const(<16 x i8> %23, i32 32) %31 = call float @llvm.SI.load.const(<16 x i8> %23, i32 36) %32 = call float @llvm.SI.load.const(<16 x i8> %23, i32 40) %33 = call float @llvm.SI.load.const(<16 x i8> %23, i32 48) %34 = call float @llvm.SI.load.const(<16 x i8> %23, i32 52) %35 = call float @llvm.SI.load.const(<16 x i8> %23, i32 56) %36 = call float @llvm.SI.load.const(<16 x i8> %23, i32 64) %37 = call float @llvm.SI.load.const(<16 x i8> %23, i32 68) %38 = call float @llvm.SI.load.const(<16 x i8> %23, i32 72) %39 = call float @llvm.SI.load.const(<16 x i8> %23, i32 80) %40 = call float @llvm.SI.load.const(<16 x i8> %23, i32 84) %41 = call float @llvm.SI.load.const(<16 x i8> %23, i32 88) %42 = call float @llvm.SI.load.const(<16 x i8> %23, i32 96) %43 = call float @llvm.SI.load.const(<16 x i8> %23, i32 100) %44 = call float @llvm.SI.load.const(<16 x i8> %23, i32 104) %45 = call float @llvm.SI.load.const(<16 x i8> %23, i32 112) %46 = call float @llvm.SI.load.const(<16 x i8> %23, i32 116) %47 = call float @llvm.SI.load.const(<16 x i8> %23, i32 120) %48 = call float @llvm.SI.load.const(<16 x i8> %23, i32 128) %49 = call float @llvm.SI.load.const(<16 x i8> %23, i32 132) %50 = call float @llvm.SI.load.const(<16 x i8> %23, i32 136) %51 = call float @llvm.SI.load.const(<16 x i8> %23, i32 144) %52 = call float @llvm.SI.load.const(<16 x i8> %23, i32 148) %53 = call float @llvm.SI.load.const(<16 x i8> %23, i32 152) %54 = call float @llvm.SI.load.const(<16 x i8> %23, i32 160) %55 = call float @llvm.SI.load.const(<16 x i8> %23, i32 164) %56 = call float @llvm.SI.load.const(<16 x i8> %23, i32 168) %57 = call float @llvm.SI.load.const(<16 x i8> %23, i32 176) %58 = call float @llvm.SI.load.const(<16 x i8> %23, i32 180) %59 = call float @llvm.SI.load.const(<16 x i8> %23, i32 184) %60 = call float @llvm.SI.load.const(<16 x i8> %23, i32 192) %61 = call float @llvm.SI.load.const(<16 x i8> %23, i32 196) %62 = call float @llvm.SI.load.const(<16 x i8> %23, i32 200) %63 = call float @llvm.SI.load.const(<16 x i8> %23, i32 208) %64 = call float @llvm.SI.load.const(<16 x i8> %23, i32 212) %65 = call float @llvm.SI.load.const(<16 x i8> %23, i32 216) %66 = call float @llvm.SI.load.const(<16 x i8> %23, i32 224) %67 = call float @llvm.SI.load.const(<16 x i8> %23, i32 228) %68 = call float @llvm.SI.load.const(<16 x i8> %23, i32 232) %69 = call float @llvm.SI.load.const(<16 x i8> %23, i32 240) %70 = call float @llvm.SI.load.const(<16 x i8> %23, i32 244) %71 = call float @llvm.SI.load.const(<16 x i8> %23, i32 248) %72 = call float @llvm.SI.load.const(<16 x i8> %23, i32 256) %73 = call float @llvm.SI.load.const(<16 x i8> %23, i32 260) %74 = call float @llvm.SI.load.const(<16 x i8> %23, i32 264) %75 = call float @llvm.SI.load.const(<16 x i8> %23, i32 272) %76 = call float @llvm.SI.load.const(<16 x i8> %23, i32 276) %77 = call float @llvm.SI.load.const(<16 x i8> %23, i32 280) %78 = call float @llvm.SI.load.const(<16 x i8> %23, i32 288) %79 = call float @llvm.SI.load.const(<16 x i8> %23, i32 292) %80 = call float @llvm.SI.load.const(<16 x i8> %23, i32 296) %81 = call float @llvm.SI.load.const(<16 x i8> %23, i32 304) %82 = call float @llvm.SI.load.const(<16 x i8> %23, i32 308) %83 = call float @llvm.SI.load.const(<16 x i8> %23, i32 312) %84 = call float @llvm.SI.load.const(<16 x i8> %23, i32 368) %85 = call float @llvm.SI.load.const(<16 x i8> %23, i32 372) %86 = call float @llvm.SI.load.const(<16 x i8> %23, i32 376) %87 = call float @llvm.SI.load.const(<16 x i8> %23, i32 380) %88 = call float @llvm.SI.load.const(<16 x i8> %23, i32 384) %89 = call float @llvm.SI.load.const(<16 x i8> %23, i32 388) %90 = call float @llvm.SI.load.const(<16 x i8> %23, i32 392) %91 = call float @llvm.SI.load.const(<16 x i8> %23, i32 396) %92 = call float @llvm.SI.load.const(<16 x i8> %23, i32 448) %93 = call float @llvm.SI.load.const(<16 x i8> %23, i32 452) %94 = bitcast [34 x <8 x i32>] addrspace(2)* %3 to <32 x i8> addrspace(2)* %95 = load <32 x i8>, <32 x i8> addrspace(2)* %94, align 32, !tbaa !0 %96 = bitcast [17 x <4 x i32>] addrspace(2)* %2 to <16 x i8> addrspace(2)* %97 = load <16 x i8>, <16 x i8> addrspace(2)* %96, align 16, !tbaa !0 %98 = getelementptr [34 x <8 x i32>], [34 x <8 x i32>] addrspace(2)* %3, i64 0, i64 1 %99 = bitcast <8 x i32> addrspace(2)* %98 to <32 x i8> addrspace(2)* %100 = load <32 x i8>, <32 x i8> addrspace(2)* %99, align 32, !tbaa !0 %101 = getelementptr [17 x <4 x i32>], [17 x <4 x i32>] addrspace(2)* %2, i64 0, i64 1 %102 = bitcast <4 x i32> addrspace(2)* %101 to <16 x i8> addrspace(2)* %103 = load <16 x i8>, <16 x i8> addrspace(2)* %102, align 16, !tbaa !0 %104 = getelementptr [34 x <8 x i32>], [34 x <8 x i32>] addrspace(2)* %3, i64 0, i64 2 %105 = bitcast <8 x i32> addrspace(2)* %104 to <32 x i8> addrspace(2)* %106 = load <32 x i8>, <32 x i8> addrspace(2)* %105, align 32, !tbaa !0 %107 = getelementptr [17 x <4 x i32>], [17 x <4 x i32>] addrspace(2)* %2, i64 0, i64 2 %108 = bitcast <4 x i32> addrspace(2)* %107 to <16 x i8> addrspace(2)* %109 = load <16 x i8>, <16 x i8> addrspace(2)* %108, align 16, !tbaa !0 %110 = getelementptr [34 x <8 x i32>], [34 x <8 x i32>] addrspace(2)* %3, i64 0, i64 3 %111 = bitcast <8 x i32> addrspace(2)* %110 to <32 x i8> addrspace(2)* %112 = load <32 x i8>, <32 x i8> addrspace(2)* %111, align 32, !tbaa !0 %113 = getelementptr [17 x <4 x i32>], [17 x <4 x i32>] addrspace(2)* %2, i64 0, i64 3 %114 = bitcast <4 x i32> addrspace(2)* %113 to <16 x i8> addrspace(2)* %115 = load <16 x i8>, <16 x i8> addrspace(2)* %114, align 16, !tbaa !0 %116 = getelementptr [34 x <8 x i32>], [34 x <8 x i32>] addrspace(2)* %3, i64 0, i64 4 %117 = load <8 x i32>, <8 x i32> addrspace(2)* %116, align 32, !tbaa !0 %118 = getelementptr [17 x <4 x i32>], [17 x <4 x i32>] addrspace(2)* %2, i64 0, i64 4 %119 = load <4 x i32>, <4 x i32> addrspace(2)* %118, align 16, !tbaa !0 %120 = getelementptr [34 x <8 x i32>], [34 x <8 x i32>] addrspace(2)* %3, i64 0, i64 5 %121 = load <8 x i32>, <8 x i32> addrspace(2)* %120, align 32, !tbaa !0 %122 = getelementptr [17 x <4 x i32>], [17 x <4 x i32>] addrspace(2)* %2, i64 0, i64 5 %123 = load <4 x i32>, <4 x i32> addrspace(2)* %122, align 16, !tbaa !0 %124 = call float @llvm.SI.fs.interp(i32 0, i32 0, i32 %5, <2 x i32> %7) %125 = call float @llvm.SI.fs.interp(i32 1, i32 0, i32 %5, <2 x i32> %7) %126 = call float @llvm.SI.fs.interp(i32 0, i32 1, i32 %5, <2 x i32> %7) %127 = call float @llvm.SI.fs.interp(i32 1, i32 1, i32 %5, <2 x i32> %7) %128 = call float @llvm.SI.fs.interp(i32 2, i32 1, i32 %5, <2 x i32> %7) %129 = call float @llvm.SI.fs.interp(i32 0, i32 2, i32 %5, <2 x i32> %7) %130 = call float @llvm.SI.fs.interp(i32 1, i32 2, i32 %5, <2 x i32> %7) %131 = call float @llvm.SI.fs.interp(i32 2, i32 2, i32 %5, <2 x i32> %7) %132 = call float @llvm.SI.fs.interp(i32 0, i32 3, i32 %5, <2 x i32> %7) %133 = call float @llvm.SI.fs.interp(i32 1, i32 3, i32 %5, <2 x i32> %7) %134 = call float @llvm.SI.fs.interp(i32 2, i32 3, i32 %5, <2 x i32> %7) %135 = call float @llvm.SI.fs.interp(i32 3, i32 3, i32 %5, <2 x i32> %7) %136 = call float @llvm.SI.fs.interp(i32 0, i32 4, i32 %5, <2 x i32> %7) %137 = fmul float %92, %15 %138 = fadd float %137, %93 %139 = fmul float %14, 1.562500e-02 %140 = fmul float %138, 1.562500e-02 %141 = bitcast float %139 to i32 %142 = bitcast float %140 to i32 %143 = insertelement <2 x i32> undef, i32 %141, i32 0 %144 = insertelement <2 x i32> %143, i32 %142, i32 1 %145 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %144, <32 x i8> %112, <16 x i8> %115, i32 2) %146 = extractelement <4 x float> %145, i32 0 %147 = fcmp ult float %136, 0.000000e+00 br i1 %147, label %ELSE, label %IF IF: ; preds = %main_body %148 = fcmp oge float %146, %136 %149 = select i1 %148, float -1.000000e+00, float 0.000000e+00 call void @llvm.AMDGPU.kill(float %149) br label %ENDIF ELSE: ; preds = %main_body %150 = fadd float %136, 1.000000e+00 %151 = fcmp olt float %146, %150 %152 = select i1 %151, float -1.000000e+00, float 0.000000e+00 call void @llvm.AMDGPU.kill(float %152) br label %ENDIF ENDIF: ; preds = %ELSE, %IF %temp4.0.in.in = phi i1 [ %148, %IF ], [ %151, %ELSE ] %153 = bitcast float %124 to i32 %154 = bitcast float %125 to i32 %155 = insertelement <2 x i32> undef, i32 %153, i32 0 %156 = insertelement <2 x i32> %155, i32 %154, i32 1 %157 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %156, <32 x i8> %100, <16 x i8> %103, i32 2) %158 = extractelement <4 x float> %157, i32 0 %159 = extractelement <4 x float> %157, i32 1 %160 = bitcast float %124 to i32 %161 = bitcast float %125 to i32 %162 = insertelement <2 x i32> undef, i32 %160, i32 0 %163 = insertelement <2 x i32> %162, i32 %161, i32 1 %164 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %163, <32 x i8> %95, <16 x i8> %97, i32 2) %165 = extractelement <4 x float> %164, i32 0 %166 = extractelement <4 x float> %164, i32 1 %167 = extractelement <4 x float> %164, i32 2 %168 = extractelement <4 x float> %164, i32 3 %169 = fmul float %165, %84 %170 = fmul float %166, %85 %171 = fmul float %167, %86 %172 = fmul float %168, %87 %173 = bitcast float %124 to i32 %174 = bitcast float %125 to i32 %175 = insertelement <2 x i32> undef, i32 %173, i32 0 %176 = insertelement <2 x i32> %175, i32 %174, i32 1 %177 = call <4 x float> @llvm.SI.sample.v2i32(<2 x i32> %176, <32 x i8> %106, <16 x i8> %109, i32 2) %178 = extractelement <4 x float> %177, i32 0 %179 = extractelement <4 x float> %177, i32 1 %180 = extractelement <4 x float> %177, i32 2 %181 = extractelement <4 x float> %177, i32 3 %182 = fmul float %178, %88 %183 = fmul float %179, %89 %184 = fmul float %180, %90 %185 = fmul float %181, %91 %186 = fmul float %158, %158 %187 = fmul float %159, %159 %188 = fadd float %186, %187 %189 = fsub float 1.000000e+00, %188 %190 = call float @llvm.AMDIL.clamp.(float %189, float 0.000000e+00, float 1.000000e+00) %191 = call float @llvm.sqrt.f32(float %190) %192 = fmul float %129, %129 %193 = fmul float %130, %130 %194 = fadd float %193, %192 %195 = fmul float %131, %131 %196 = fadd float %194, %195 %197 = call float @llvm.AMDGPU.rsq.clamped.f32(float %196) %198 = fmul float %126, %158 %199 = fsub float -0.000000e+00, %198 %200 = fmul float %127, %159 %201 = fsub float %199, %200 %202 = fmul float %128, %191 %203 = fsub float %201, %202 %204 = fmul float %203, %158 %205 = fmul float %203, %159 %206 = fmul float %203, %191 %207 = fmul float %204, 2.000000e+00 %208 = fmul float %205, 2.000000e+00 %209 = fmul float %206, 2.000000e+00 %210 = fsub float -0.000000e+00, %207 %211 = fsub float %210, %126 %212 = fsub float -0.000000e+00, %208 %213 = fsub float %212, %127 %214 = fsub float -0.000000e+00, %209 %215 = fsub float %214, %128 %216 = fmul float %211, %129 %217 = fmul float %213, %130 %218 = fadd float %217, %216 %219 = fmul float %215, %131 %220 = fadd float %218, %219 %221 = fmul float %220, %197 %222 = call float @llvm.AMDIL.clamp.(float %221, float 0.000000e+00, float 1.000000e+00) %223 = fmul float %185, %83 %224 = call float @llvm.maxnum.f32(float %223, float 0x3EB0C6F7A0000000) %225 = call float @llvm.pow.f32(float %222, float %224) %226 = fmul float %225, %82 %227 = fmul float %129, %158 %228 = fmul float %130, %159 %229 = fadd float %228, %227 %230 = fmul float %131, %191 %231 = fadd float %229, %230 %232 = fmul float %231, %197 %233 = call float @fabs(float %232) %234 = fsub float 1.000000e+00, %233 %235 = call float @llvm.AMDIL.clamp.(float %234, float 0.000000e+00, float 1.000000e+00) %236 = call float @llvm.pow.f32(float %235, float %80) %237 = fmul float %236, %79 %238 = fadd float %237, %78 %239 = call float @llvm.AMDIL.clamp.(float %238, float 0.000000e+00, float 1.000000e+00) %240 = fmul float %226, %239 %241 = fmul float %126, %158 %242 = fmul float %127, %159 %243 = fadd float %242, %241 %244 = fmul float %128, %191 %245 = fadd float %243, %244 %246 = call float @llvm.AMDIL.clamp.(float %245, float 0.000000e+00, float 1.000000e+00) %247 = fmul float %246, %81 %248 = fmul float %169, %247 %249 = fmul float %170, %247 %250 = fmul float %171, %247 %251 = fmul float %182, %240 %252 = fadd float %251, %248 %253 = fmul float %183, %240 %254 = fadd float %253, %249 %255 = fmul float %184, %240 %256 = fadd float %255, %250 %257 = fmul float %30, %132 %258 = fmul float %31, %132 %259 = fmul float %32, %132 %260 = fmul float %33, %133 %261 = fadd float %260, %257 %262 = fmul float %34, %133 %263 = fadd float %262, %258 %264 = fmul float %35, %133 %265 = fadd float %264, %259 %266 = fmul float %36, %134 %267 = fadd float %266, %261 %268 = fmul float %37, %134 %269 = fadd float %268, %263 %270 = fmul float %38, %134 %271 = fadd float %270, %265 %272 = fmul float %39, %135 %273 = fadd float %272, %267 %274 = fmul float %40, %135 %275 = fadd float %274, %269 %276 = fmul float %41, %135 %277 = fadd float %276, %271 %278 = fadd float %273, -2.500000e-01 %279 = fadd float %275, -2.500000e-01 %280 = call float @fabs(float %278) %281 = call float @fabs(float %279) %282 = call float @llvm.maxnum.f32(float %280, float %281) %283 = fcmp ult float %282, 0x3FCF5C2900000000 br i1 %283, label %ENDIF80, label %IF81 IF81: ; preds = %ENDIF %284 = fmul float %42, %132 %285 = fmul float %43, %132 %286 = fmul float %44, %132 %287 = fmul float %45, %133 %288 = fadd float %287, %284 %289 = fmul float %46, %133 %290 = fadd float %289, %285 %291 = fmul float %47, %133 %292 = fadd float %291, %286 %293 = fmul float %48, %134 %294 = fadd float %293, %288 %295 = fmul float %49, %134 %296 = fadd float %295, %290 %297 = fmul float %50, %134 %298 = fadd float %297, %292 %299 = fmul float %51, %135 %300 = fadd float %299, %294 %301 = fmul float %52, %135 %302 = fadd float %301, %296 %303 = fmul float %53, %135 %304 = fadd float %303, %298 %305 = fadd float %300, -7.500000e-01 %306 = fadd float %302, -2.500000e-01 %307 = call float @fabs(float %305) %308 = call float @fabs(float %306) %309 = call float @llvm.maxnum.f32(float %307, float %308) %310 = fcmp ult float %309, 0x3FCF5C2900000000 br i1 %310, label %ENDIF80, label %IF84 ENDIF80: ; preds = %IF84, %IF81, %ENDIF, %IF87 %temp24.0 = phi float [ 0.000000e+00, %ENDIF ], [ 0.000000e+00, %IF81 ], [ %., %IF87 ], [ 0.000000e+00, %IF84 ] %temp28.0 = phi float [ %273, %ENDIF ], [ %300, %IF81 ], [ %355, %IF87 ], [ %328, %IF84 ] %temp29.0 = phi float [ %275, %ENDIF ], [ %302, %IF81 ], [ %357, %IF87 ], [ %330, %IF84 ] %temp30.0 = phi float [ %277, %ENDIF ], [ %304, %IF81 ], [ %359, %IF87 ], [ %332, %IF84 ] %311 = fcmp oeq float %temp24.0, 0.000000e+00 br i1 %311, label %IF93, label %ENDIF92 IF84: ; preds = %IF81 %312 = fmul float %54, %132 %313 = fmul float %55, %132 %314 = fmul float %56, %132 %315 = fmul float %57, %133 %316 = fadd float %315, %312 %317 = fmul float %58, %133 %318 = fadd float %317, %313 %319 = fmul float %59, %133 %320 = fadd float %319, %314 %321 = fmul float %60, %134 %322 = fadd float %321, %316 %323 = fmul float %61, %134 %324 = fadd float %323, %318 %325 = fmul float %62, %134 %326 = fadd float %325, %320 %327 = fmul float %63, %135 %328 = fadd float %327, %322 %329 = fmul float %64, %135 %330 = fadd float %329, %324 %331 = fmul float %65, %135 %332 = fadd float %331, %326 %333 = fadd float %328, -2.500000e-01 %334 = fadd float %330, -7.500000e-01 %335 = call float @fabs(float %333) %336 = call float @fabs(float %334) %337 = call float @llvm.maxnum.f32(float %335, float %336) %338 = fcmp ult float %337, 0x3FCF5C2900000000 br i1 %338, label %ENDIF80, label %IF87 IF87: ; preds = %IF84 %339 = fmul float %66, %132 %340 = fmul float %67, %132 %341 = fmul float %68, %132 %342 = fmul float %69, %133 %343 = fadd float %342, %339 %344 = fmul float %70, %133 %345 = fadd float %344, %340 %346 = fmul float %71, %133 %347 = fadd float %346, %341 %348 = fmul float %72, %134 %349 = fadd float %348, %343 %350 = fmul float %73, %134 %351 = fadd float %350, %345 %352 = fmul float %74, %134 %353 = fadd float %352, %347 %354 = fmul float %75, %135 %355 = fadd float %354, %349 %356 = fmul float %76, %135 %357 = fadd float %356, %351 %358 = fmul float %77, %135 %359 = fadd float %358, %353 %360 = fadd float %355, -7.500000e-01 %361 = fadd float %357, -7.500000e-01 %362 = call float @fabs(float %360) %363 = call float @fabs(float %361) %364 = call float @llvm.maxnum.f32(float %362, float %363) %365 = fcmp oge float %364, 0x3FCF5C2900000000 %. = select i1 %365, float 1.000000e+00, float 0.000000e+00 br label %ENDIF80 IF93: ; preds = %ENDIF80 %366 = fmul float %14, 6.250000e-02 %367 = fmul float %138, 6.250000e-02 %368 = fsub float %temp28.0, %28 %369 = fsub float %temp29.0, %28 %370 = bitcast float %366 to i32 %371 = bitcast float %367 to i32 %372 = insertelement <4 x i32> undef, i32 %370, i32 0 %373 = insertelement <4 x i32> %372, i32 %371, i32 1 %374 = insertelement <4 x i32> %373, i32 0, i32 2 %375 = bitcast <8 x i32> %121 to <32 x i8> %376 = bitcast <4 x i32> %123 to <16 x i8> %377 = call <4 x float> @llvm.SI.sample.v4i32(<4 x i32> %374, <32 x i8> %375, <16 x i8> %376, i32 3) %378 = extractelement <4 x float> %377, i32 0 %379 = extractelement <4 x float> %377, i32 1 %380 = extractelement <4 x float> %377, i32 2 %381 = extractelement <4 x float> %377, i32 3 %382 = fmul float %378, %29 %383 = fmul float %379, %29 %384 = fmul float %380, %29 %385 = fmul float %381, %29 %386 = fadd float %368, %382 %387 = fadd float %369, %383 %388 = bitcast float %temp30.0 to i32 %389 = bitcast float %386 to i32 %390 = bitcast float %387 to i32 %391 = insertelement <4 x i32> undef, i32 %388, i32 0 %392 = insertelement <4 x i32> %391, i32 %389, i32 1 %393 = insertelement <4 x i32> %392, i32 %390, i32 2 %394 = bitcast <8 x i32> %117 to <32 x i8> %395 = bitcast <4 x i32> %119 to <16 x i8> %396 = call <4 x float> @llvm.SI.sample.v4i32(<4 x i32> %393, <32 x i8> %394, <16 x i8> %395, i32 7) %397 = extractelement <4 x float> %396, i32 0 %398 = fadd float %temp24.0, %397 %399 = fadd float %368, %384 %400 = fadd float %369, %385 %401 = bitcast float %temp30.0 to i32 %402 = bitcast float %399 to i32 %403 = bitcast float %400 to i32 %404 = insertelement <4 x i32> undef, i32 %401, i32 0 %405 = insertelement <4 x i32> %404, i32 %402, i32 1 %406 = insertelement <4 x i32> %405, i32 %403, i32 2 %407 = bitcast <8 x i32> %117 to <32 x i8> %408 = bitcast <4 x i32> %119 to <16 x i8> %409 = call <4 x float> @llvm.SI.sample.v4i32(<4 x i32> %406, <32 x i8> %407, <16 x i8> %408, i32 7) %410 = extractelement <4 x float> %409, i32 0 %411 = fadd float %398, %410 %412 = bitcast float %366 to i32 %413 = bitcast float %367 to i32 %414 = insertelement <4 x i32> undef, i32 %412, i32 0 %415 = insertelement <4 x i32> %414, i32 %413, i32 1 %416 = insertelement <4 x i32> %415, i32 1031798784, i32 2 %417 = bitcast <8 x i32> %121 to <32 x i8> %418 = bitcast <4 x i32> %123 to <16 x i8> %419 = call <4 x float> @llvm.SI.sample.v4i32(<4 x i32> %416, <32 x i8> %417, <16 x i8> %418, i32 3) %420 = extractelement <4 x float> %419, i32 0 %421 = extractelement <4 x float> %419, i32 1 %422 = extractelement <4 x float> %419, i32 2 %423 = extractelement <4 x float> %419, i32 3 %424 = fmul float %420, %29 %425 = fmul float %421, %29 %426 = fmul float %422, %29 %427 = fmul float %423, %29 %428 = fadd float %368, %424 %429 = fadd float %369, %425 %430 = bitcast float %temp30.0 to i32 %431 = bitcast float %428 to i32 %432 = bitcast float %429 to i32 %433 = insertelement <4 x i32> undef, i32 %430, i32 0 %434 = insertelement <4 x i32> %433, i32 %431, i32 1 %435 = insertelement <4 x i32> %434, i32 %432, i32 2 %436 = bitcast <8 x i32> %117 to <32 x i8> %437 = bitcast <4 x i32> %119 to <16 x i8> %438 = call <4 x float> @llvm.SI.sample.v4i32(<4 x i32> %435, <32 x i8> %436, <16 x i8> %437, i32 7) %439 = extractelement <4 x float> %438, i32 0 %440 = fadd float %411, %439 %441 = fadd float %368, %426 %442 = fadd float %369, %427 %443 = bitcast float %temp30.0 to i32 %444 = bitcast float %441 to i32 %445 = bitcast float %442 to i32 %446 = insertelement <4 x i32> undef, i32 %443, i32 0 %447 = insertelement <4 x i32> %446, i32 %444, i32 1 %448 = insertelement <4 x i32> %447, i32 %445, i32 2 %449 = bitcast <8 x i32> %117 to <32 x i8> %450 = bitcast <4 x i32> %119 to <16 x i8> %451 = call <4 x float> @llvm.SI.sample.v4i32(<4 x i32> %448, <32 x i8> %449, <16 x i8> %450, i32 7) %452 = extractelement <4 x float> %451, i32 0 %453 = fadd float %440, %452 %454 = bitcast float %366 to i32 %455 = bitcast float %367 to i32 %456 = insertelement <4 x i32> undef, i32 %454, i32 0 %457 = insertelement <4 x i32> %456, i32 %455, i32 1 %458 = insertelement <4 x i32> %457, i32 1040187392, i32 2 %459 = bitcast <8 x i32> %121 to <32 x i8> %460 = bitcast <4 x i32> %123 to <16 x i8> %461 = call <4 x float> @llvm.SI.sample.v4i32(<4 x i32> %458, <32 x i8> %459, <16 x i8> %460, i32 3) %462 = extractelement <4 x float> %461, i32 0 %463 = extractelement <4 x float> %461, i32 1 %464 = extractelement <4 x float> %461, i32 2 %465 = extractelement <4 x float> %461, i32 3 %466 = fmul float %462, %29 %467 = fmul float %463, %29 %468 = fmul float %464, %29 %469 = fmul float %465, %29 %470 = fadd float %368, %466 %471 = fadd float %369, %467 %472 = bitcast float %temp30.0 to i32 %473 = bitcast float %470 to i32 %474 = bitcast float %471 to i32 %475 = insertelement <4 x i32> undef, i32 %472, i32 0 %476 = insertelement <4 x i32> %475, i32 %473, i32 1 %477 = insertelement <4 x i32> %476, i32 %474, i32 2 %478 = bitcast <8 x i32> %117 to <32 x i8> %479 = bitcast <4 x i32> %119 to <16 x i8> %480 = call <4 x float> @llvm.SI.sample.v4i32(<4 x i32> %477, <32 x i8> %478, <16 x i8> %479, i32 7) %481 = extractelement <4 x float> %480, i32 0 %482 = fadd float %453, %481 %483 = fadd float %368, %468 %484 = fadd float %369, %469 %485 = bitcast float %temp30.0 to i32 %486 = bitcast float %483 to i32 %487 = bitcast float %484 to i32 %488 = insertelement <4 x i32> undef, i32 %485, i32 0 %489 = insertelement <4 x i32> %488, i32 %486, i32 1 %490 = insertelement <4 x i32> %489, i32 %487, i32 2 %491 = bitcast <8 x i32> %117 to <32 x i8> %492 = bitcast <4 x i32> %119 to <16 x i8> %493 = call <4 x float> @llvm.SI.sample.v4i32(<4 x i32> %490, <32 x i8> %491, <16 x i8> %492, i32 7) %494 = extractelement <4 x float> %493, i32 0 %495 = fadd float %482, %494 %496 = bitcast float %366 to i32 %497 = bitcast float %367 to i32 %498 = insertelement <4 x i32> undef, i32 %496, i32 0 %499 = insertelement <4 x i32> %498, i32 %497, i32 1 %500 = insertelement <4 x i32> %499, i32 1044381696, i32 2 %501 = bitcast <8 x i32> %121 to <32 x i8> %502 = bitcast <4 x i32> %123 to <16 x i8> %503 = call <4 x float> @llvm.SI.sample.v4i32(<4 x i32> %500, <32 x i8> %501, <16 x i8> %502, i32 3) %504 = extractelement <4 x float> %503, i32 0 %505 = extractelement <4 x float> %503, i32 1 %506 = extractelement <4 x float> %503, i32 2 %507 = extractelement <4 x float> %503, i32 3 %508 = fmul float %504, %29 %509 = fmul float %505, %29 %510 = fmul float %506, %29 %511 = fmul float %507, %29 %512 = fadd float %368, %508 %513 = fadd float %369, %509 %514 = bitcast float %temp30.0 to i32 %515 = bitcast float %512 to i32 %516 = bitcast float %513 to i32 %517 = insertelement <4 x i32> undef, i32 %514, i32 0 %518 = insertelement <4 x i32> %517, i32 %515, i32 1 %519 = insertelement <4 x i32> %518, i32 %516, i32 2 %520 = bitcast <8 x i32> %117 to <32 x i8> %521 = bitcast <4 x i32> %119 to <16 x i8> %522 = call <4 x float> @llvm.SI.sample.v4i32(<4 x i32> %519, <32 x i8> %520, <16 x i8> %521, i32 7) %523 = extractelement <4 x float> %522, i32 0 %524 = fadd float %495, %523 %525 = fadd float %368, %510 %526 = fadd float %369, %511 %527 = bitcast float %temp30.0 to i32 %528 = bitcast float %525 to i32 %529 = bitcast float %526 to i32 %530 = insertelement <4 x i32> undef, i32 %527, i32 0 %531 = insertelement <4 x i32> %530, i32 %528, i32 1 %532 = insertelement <4 x i32> %531, i32 %529, i32 2 %533 = bitcast <8 x i32> %117 to <32 x i8> %534 = bitcast <4 x i32> %119 to <16 x i8> %535 = call <4 x float> @llvm.SI.sample.v4i32(<4 x i32> %532, <32 x i8> %533, <16 x i8> %534, i32 7) %536 = extractelement <4 x float> %535, i32 0 %537 = fadd float %524, %536 %538 = fmul float %537, 1.250000e-01 %539 = fsub float 1.000000e+00, %538 %540 = fmul float %538, %539 %541 = fcmp une float %540, 0.000000e+00 br i1 %541, label %IF96, label %ENDIF95 ENDIF92: ; preds = %ENDIF80, %ENDIF95 %temp16.0 = phi float [ %566, %ENDIF95 ], [ %252, %ENDIF80 ] %temp17.0 = phi float [ %567, %ENDIF95 ], [ %254, %ENDIF80 ] %temp18.0 = phi float [ %568, %ENDIF95 ], [ %256, %ENDIF80 ] %542 = fmul float %temp16.0, %24 %543 = fmul float %temp17.0, %25 %544 = fmul float %temp18.0, %26 %545 = call i32 @llvm.SI.packf16(float %542, float %543) %546 = bitcast i32 %545 to float %547 = call i32 @llvm.SI.packf16(float %544, float %172) %548 = bitcast i32 %547 to float call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %546, float %548, float %546, float %548) ret void IF96: ; preds = %IF93 %549 = fmul float %538, 8.000000e+00 %550 = bitcast float %366 to i32 %551 = bitcast float %367 to i32 %552 = insertelement <4 x i32> undef, i32 %550, i32 0 %553 = insertelement <4 x i32> %552, i32 %551, i32 1 %554 = bitcast <8 x i32> %121 to <32 x i8> %555 = bitcast <4 x i32> %123 to <16 x i8> %556 = bitcast float %temp30.0 to i32 %557 = insertelement <4 x i32> undef, i32 %556, i32 0 %558 = bitcast <8 x i32> %117 to <32 x i8> %559 = bitcast <4 x i32> %119 to <16 x i8> %560 = bitcast float %temp30.0 to i32 %561 = insertelement <4 x i32> undef, i32 %560, i32 0 %562 = bitcast <8 x i32> %117 to <32 x i8> %563 = bitcast <4 x i32> %119 to <16 x i8> br label %LOOP ENDIF95: ; preds = %IF93, %ENDLOOP %temp24.4 = phi float [ %571, %ENDLOOP ], [ %538, %IF93 ] %564 = fadd float %temp24.4, %27 %565 = call float @llvm.AMDIL.clamp.(float %564, float 0.000000e+00, float 1.000000e+00) %566 = fmul float %252, %565 %567 = fmul float %254, %565 %568 = fmul float %256, %565 br label %ENDIF92 LOOP: ; preds = %ENDIF98, %IF96 %temp12.0 = phi float [ 0x36C0000000000000, %IF96 ], [ %604, %ENDIF98 ] %temp24.5 = phi float [ %549, %IF96 ], [ %600, %ENDIF98 ] %temp34.0 = phi float [ 2.500000e-01, %IF96 ], [ %601, %ENDIF98 ] %569 = bitcast float %temp12.0 to i32 %570 = icmp sgt i32 %569, 15 br i1 %570, label %ENDLOOP, label %ENDIF98 ENDLOOP: ; preds = %ENDIF98, %LOOP %temp24.6 = phi float [ %temp24.5, %LOOP ], [ %600, %ENDIF98 ] %571 = fmul float %temp24.6, 3.125000e-02 br label %ENDIF95 ENDIF98: ; preds = %LOOP %572 = bitcast float %temp34.0 to i32 %573 = insertelement <4 x i32> %553, i32 %572, i32 2 %574 = call <4 x float> @llvm.SI.sample.v4i32(<4 x i32> %573, <32 x i8> %554, <16 x i8> %555, i32 3) %575 = extractelement <4 x float> %574, i32 0 %576 = extractelement <4 x float> %574, i32 1 %577 = extractelement <4 x float> %574, i32 2 %578 = extractelement <4 x float> %574, i32 3 %579 = fmul float %575, %29 %580 = fmul float %576, %29 %581 = fmul float %577, %29 %582 = fmul float %578, %29 %583 = fadd float %368, %579 %584 = fadd float %369, %580 %585 = bitcast float %583 to i32 %586 = bitcast float %584 to i32 %587 = insertelement <4 x i32> %557, i32 %585, i32 1 %588 = insertelement <4 x i32> %587, i32 %586, i32 2 %589 = call <4 x float> @llvm.SI.sample.v4i32(<4 x i32> %588, <32 x i8> %558, <16 x i8> %559, i32 7) %590 = extractelement <4 x float> %589, i32 0 %591 = fadd float %temp24.5, %590 %592 = fadd float %368, %581 %593 = fadd float %369, %582 %594 = bitcast float %592 to i32 %595 = bitcast float %593 to i32 %596 = insertelement <4 x i32> %561, i32 %594, i32 1 %597 = insertelement <4 x i32> %596, i32 %595, i32 2 %598 = call <4 x float> @llvm.SI.sample.v4i32(<4 x i32> %597, <32 x i8> %562, <16 x i8> %563, i32 7) %599 = extractelement <4 x float> %598, i32 0 %600 = fadd float %591, %599 %601 = fadd float %temp34.0, 6.250000e-02 %602 = bitcast float %temp12.0 to i32 %603 = add i32 %602, 1 %604 = bitcast i32 %603 to float br i1 %temp4.0.in.in, label %ENDLOOP, label %LOOP } ; 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: nounwind readnone declare <4 x float> @llvm.SI.sample.v2i32(<2 x i32>, <32 x i8>, <16 x i8>, i32) #1 declare void @llvm.AMDGPU.kill(float) ; Function Attrs: readnone declare float @llvm.AMDIL.clamp.(float, float, float) #2 ; Function Attrs: nounwind readnone declare float @llvm.sqrt.f32(float) #1 ; Function Attrs: nounwind readnone declare float @llvm.AMDGPU.rsq.clamped.f32(float) #1 ; Function Attrs: nounwind readnone declare float @llvm.maxnum.f32(float, float) #1 ; Function Attrs: nounwind readnone declare float @llvm.pow.f32(float, float) #1 ; 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 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" "enable-no-nans-fp-math"="true" } attributes #1 = { nounwind readnone } attributes #2 = { readnone } !0 = !{!"const", null, i32 1}