llvm-6502/test/CodeGen/R600/big_alu.ll
David Blaikie 5a70dd1d82 [opaque pointer type] Add textual IR support for explicit type parameter to gep operator
Similar to gep (r230786) and load (r230794) changes.

Similar migration script can be used to update test cases, which
successfully migrated all of LLVM and Polly, but about 4 test cases
needed manually changes in Clang.

(this script will read the contents of stdin and massage it into stdout
- wrap it in the 'apply.sh' script shown in previous commits + xargs to
apply it over a large set of test cases)

import fileinput
import sys
import re

rep = re.compile(r"(getelementptr(?:\s+inbounds)?\s*\()((<\d*\s+x\s+)?([^@]*?)(|\s*addrspace\(\d+\))\s*\*(?(3)>)\s*)(?=$|%|@|null|undef|blockaddress|getelementptr|addrspacecast|bitcast|inttoptr|zeroinitializer|<|\[\[[a-zA-Z]|\{\{)", re.MULTILINE | re.DOTALL)

def conv(match):
  line = match.group(1)
  line += match.group(4)
  line += ", "
  line += match.group(2)
  return line

line = sys.stdin.read()
off = 0
for match in re.finditer(rep, line):
  sys.stdout.write(line[off:match.start()])
  sys.stdout.write(conv(match))
  off = match.end()
sys.stdout.write(line[off:])

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232184 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-13 18:20:45 +00:00

1174 lines
57 KiB
LLVM

;RUN: llc < %s -march=r600 -mcpu=cedar
;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 {
main_body:
%0 = extractelement <4 x float> %reg0, i32 0
%1 = extractelement <4 x float> %reg0, i32 1
%2 = extractelement <4 x float> %reg0, i32 2
%3 = extractelement <4 x float> %reg0, i32 3
%4 = extractelement <4 x float> %reg1, i32 0
%5 = extractelement <4 x float> %reg9, i32 0
%6 = extractelement <4 x float> %reg8, i32 0
%7 = fcmp ugt float %6, 0.000000e+00
%8 = select i1 %7, float %4, float %5
%9 = extractelement <4 x float> %reg1, i32 1
%10 = extractelement <4 x float> %reg9, i32 1
%11 = extractelement <4 x float> %reg8, i32 0
%12 = fcmp ugt float %11, 0.000000e+00
%13 = select i1 %12, float %9, float %10
%14 = extractelement <4 x float> %reg1, i32 2
%15 = extractelement <4 x float> %reg9, i32 2
%16 = extractelement <4 x float> %reg8, i32 0
%17 = fcmp ugt float %16, 0.000000e+00
%18 = select i1 %17, float %14, float %15
%19 = extractelement <4 x float> %reg1, i32 3
%20 = extractelement <4 x float> %reg9, i32 3
%21 = extractelement <4 x float> %reg8, i32 0
%22 = extractelement <4 x float> %reg2, i32 0
%23 = extractelement <4 x float> %reg2, i32 1
%24 = extractelement <4 x float> %reg2, i32 2
%25 = extractelement <4 x float> %reg2, i32 3
%26 = extractelement <4 x float> %reg3, i32 0
%27 = extractelement <4 x float> %reg3, i32 1
%28 = extractelement <4 x float> %reg3, i32 2
%29 = extractelement <4 x float> %reg3, i32 3
%30 = extractelement <4 x float> %reg4, i32 0
%31 = extractelement <4 x float> %reg4, i32 1
%32 = extractelement <4 x float> %reg4, i32 2
%33 = extractelement <4 x float> %reg4, i32 3
%34 = extractelement <4 x float> %reg5, i32 0
%35 = extractelement <4 x float> %reg5, i32 1
%36 = extractelement <4 x float> %reg5, i32 2
%37 = extractelement <4 x float> %reg5, i32 3
%38 = extractelement <4 x float> %reg6, i32 0
%39 = extractelement <4 x float> %reg6, i32 1
%40 = extractelement <4 x float> %reg6, i32 2
%41 = extractelement <4 x float> %reg6, i32 3
%42 = extractelement <4 x float> %reg7, i32 0
%43 = extractelement <4 x float> %reg7, i32 1
%44 = extractelement <4 x float> %reg7, i32 2
%45 = extractelement <4 x float> %reg7, i32 3
%46 = 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 11)
%47 = extractelement <4 x float> %46, i32 0
%48 = 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 11)
%49 = extractelement <4 x float> %48, i32 1
%50 = 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 11)
%51 = extractelement <4 x float> %50, i32 2
%52 = 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 12)
%53 = extractelement <4 x float> %52, i32 0
%54 = 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 14)
%55 = extractelement <4 x float> %54, i32 0
%56 = 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 14)
%57 = extractelement <4 x float> %56, i32 1
%58 = 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 14)
%59 = extractelement <4 x float> %58, i32 2
%60 = 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 14)
%61 = extractelement <4 x float> %60, i32 3
%62 = 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 16)
%63 = extractelement <4 x float> %62, i32 0
%64 = 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 16)
%65 = extractelement <4 x float> %64, i32 1
%66 = 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 16)
%67 = extractelement <4 x float> %66, i32 2
%68 = 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 9)
%69 = extractelement <4 x float> %68, i32 0
%70 = fcmp oge float %69, 3.500000e+00
%71 = sext i1 %70 to i32
%72 = bitcast i32 %71 to float
%73 = bitcast float %72 to i32
%74 = icmp ne i32 %73, 0
%. = select i1 %74, float 0.000000e+00, float 0.000000e+00
%75 = 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 9)
%76 = extractelement <4 x float> %75, i32 0
%77 = fcmp oge float %76, 2.000000e+00
%78 = sext i1 %77 to i32
%79 = bitcast i32 %78 to float
%80 = bitcast float %79 to i32
%81 = icmp ne i32 %80, 0
br i1 %81, label %IF137, label %ENDIF136
IF137: ; preds = %main_body
%82 = insertelement <4 x float> undef, float %30, i32 0
%83 = insertelement <4 x float> %82, float %31, i32 1
%84 = insertelement <4 x float> %83, float %32, i32 2
%85 = insertelement <4 x float> %84, float 0.000000e+00, i32 3
%86 = insertelement <4 x float> undef, float %30, i32 0
%87 = insertelement <4 x float> %86, float %31, i32 1
%88 = insertelement <4 x float> %87, float %32, i32 2
%89 = insertelement <4 x float> %88, float 0.000000e+00, i32 3
%90 = call float @llvm.AMDGPU.dp4(<4 x float> %85, <4 x float> %89)
%91 = call float @llvm.AMDGPU.rsq.f32(float %90)
%92 = fmul float %30, %91
%93 = fmul float %31, %91
%94 = fmul float %32, %91
%95 = insertelement <4 x float> undef, float %92, i32 0
%96 = insertelement <4 x float> %95, float %93, i32 1
%97 = insertelement <4 x float> %96, float %94, i32 2
%98 = insertelement <4 x float> %97, float 0.000000e+00, i32 3
%99 = insertelement <4 x float> undef, float %37, i32 0
%100 = insertelement <4 x float> %99, float %38, i32 1
%101 = insertelement <4 x float> %100, float %39, i32 2
%102 = insertelement <4 x float> %101, float 0.000000e+00, i32 3
%103 = call float @llvm.AMDGPU.dp4(<4 x float> %98, <4 x float> %102)
%104 = insertelement <4 x float> undef, float %92, i32 0
%105 = insertelement <4 x float> %104, float %93, i32 1
%106 = insertelement <4 x float> %105, float %94, i32 2
%107 = insertelement <4 x float> %106, float 0.000000e+00, i32 3
%108 = insertelement <4 x float> undef, float %40, i32 0
%109 = insertelement <4 x float> %108, float %41, i32 1
%110 = insertelement <4 x float> %109, float %42, i32 2
%111 = insertelement <4 x float> %110, float 0.000000e+00, i32 3
%112 = call float @llvm.AMDGPU.dp4(<4 x float> %107, <4 x float> %111)
%113 = fsub float -0.000000e+00, %92
%114 = fsub float -0.000000e+00, %93
%115 = fsub float -0.000000e+00, %94
%116 = insertelement <4 x float> undef, float %34, i32 0
%117 = insertelement <4 x float> %116, float %35, i32 1
%118 = insertelement <4 x float> %117, float %36, i32 2
%119 = insertelement <4 x float> %118, float 0.000000e+00, i32 3
%120 = insertelement <4 x float> undef, float %113, i32 0
%121 = insertelement <4 x float> %120, float %114, i32 1
%122 = insertelement <4 x float> %121, float %115, i32 2
%123 = insertelement <4 x float> %122, float 0.000000e+00, i32 3
%124 = call float @llvm.AMDGPU.dp4(<4 x float> %119, <4 x float> %123)
%125 = fdiv float 1.000000e+00, %124
%126 = 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 5)
%127 = extractelement <4 x float> %126, i32 0
%128 = fmul float %127, %125
%129 = fmul float %103, %128
%130 = fmul float %112, %128
%131 = bitcast float %. to i32
%132 = sitofp i32 %131 to float
%133 = fdiv float 1.000000e+00, %132
%134 = bitcast float %. to i32
%135 = add i32 %134, -1
%136 = bitcast i32 %135 to float
%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 ]
%138 = fmul float %26, 0x3F847AE140000000
%139 = fmul float %27, 0x3F847AE140000000
%140 = fmul float %28, 0x3F847AE140000000
%141 = insertelement <4 x float> undef, float %138, i32 0
%142 = insertelement <4 x float> %141, float %139, i32 1
%143 = insertelement <4 x float> %142, float %140, i32 2
%144 = insertelement <4 x float> %143, float 0.000000e+00, i32 3
%145 = extractelement <4 x float> %144, i32 0
%146 = extractelement <4 x float> %144, i32 1
%147 = extractelement <4 x float> %144, i32 2
%148 = extractelement <4 x float> %144, i32 3
%149 = insertelement <4 x float> undef, float %145, i32 0
%150 = insertelement <4 x float> %149, float %146, i32 1
%151 = insertelement <4 x float> %150, float %147, i32 2
%152 = insertelement <4 x float> %151, float %148, i32 3
%153 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %152, i32 16, i32 0, i32 3)
%154 = extractelement <4 x float> %153, i32 0
%155 = extractelement <4 x float> %153, i32 1
%156 = extractelement <4 x float> %153, i32 2
%157 = extractelement <4 x float> %153, i32 3
%158 = fmul float %26, 0x3F45A07B40000000
%159 = fmul float %27, 0x3F45A07B40000000
%160 = fmul float %28, 0x3F45A07B40000000
%161 = insertelement <4 x float> undef, float %158, i32 0
%162 = insertelement <4 x float> %161, float %159, i32 1
%163 = insertelement <4 x float> %162, float %160, i32 2
%164 = insertelement <4 x float> %163, float 0.000000e+00, i32 3
%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 = insertelement <4 x float> undef, float %165, i32 0
%170 = insertelement <4 x float> %169, float %166, i32 1
%171 = insertelement <4 x float> %170, float %167, i32 2
%172 = insertelement <4 x float> %171, float %168, i32 3
%173 = call <4 x float> @llvm.AMDGPU.tex(<4 x float> %172, i32 16, i32 0, i32 3)
%174 = extractelement <4 x float> %173, i32 0
%175 = extractelement <4 x float> %173, i32 1
%176 = extractelement <4 x float> %173, i32 2
%177 = extractelement <4 x float> %173, i32 3
%178 = fmul float %176, 3.000000e+03
%179 = fadd float %178, %28
%180 = fdiv float 1.000000e+00, %33
%181 = fmul float %32, %180
%182 = call float @fabs(float %181)
%183 = fmul float %174, 0x3FD99999A0000000
%184 = fadd float %183, 0x3FAEB851E0000000
%185 = fmul float %175, 0x3FE3333340000000
%186 = fadd float %185, %184
%187 = fmul float %176, 2.000000e+00
%188 = fadd float %187, %186
%189 = fmul float %177, 4.000000e+00
%190 = fadd float %189, %188
%191 = fmul float %154, 0x3FB99999A0000000
%192 = fadd float %191, %190
%193 = fmul float %155, 0x3FD99999A0000000
%194 = fadd float %193, %192
%195 = fmul float %156, 0x3FE99999A0000000
%196 = fadd float %195, %194
%197 = fmul float %157, 0x4000CCCCC0000000
%198 = fadd float %197, %196
%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.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.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.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
LOOP: ; preds = %ENDIF139, %IF137
%temp88.0 = phi float [ 0.000000e+00, %IF137 ], [ %446, %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
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
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
%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
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
IF149: ; preds = %ENDIF145
%504 = fmul float 2.000000e+00, %482
%505 = fsub float -0.000000e+00, %504
%506 = fadd float %481, %505
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
IF152: ; preds = %ENDIF148
%530 = fmul float 2.000000e+00, %508
%531 = fsub float -0.000000e+00, %530
%532 = fadd float %507, %531
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
IF155: ; preds = %ENDIF151
%556 = fmul float 2.000000e+00, %534
%557 = fsub float -0.000000e+00, %556
%558 = fadd float %533, %557
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
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
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
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
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
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
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
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
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
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
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
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
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
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.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
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)
ret void
}
; Function Attrs: readnone
declare float @llvm.AMDGPU.dp4(<4 x float>, <4 x float>) #1
; Function Attrs: readnone
declare float @llvm.AMDGPU.rsq.f32(float) #1
; Function Attrs: readnone
declare <4 x float> @llvm.AMDGPU.tex(<4 x float>, i32, i32, i32) #1
; Function Attrs: readonly
declare float @fabs(float) #2
; Function Attrs: readnone
declare float @llvm.AMDIL.exp.(float) #1
; Function Attrs: readnone
declare float @llvm.AMDGPU.lrp(float, float, float) #1
; Function Attrs: readnone
declare float @llvm.AMDIL.clamp.(float, float, float) #1
declare void @llvm.R600.store.swizzle(<4 x float>, i32, i32)
attributes #0 = { "ShaderType"="0" }
attributes #1 = { readnone }
attributes #2 = { readonly }