-
-
Save PXAHyLee/bb6369d4a0a84a38a4324f9afa98750f to your computer and use it in GitHub Desktop.
LLVM Assembly code of the corresponding OpenCL code
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = '/home/phi/codebase/hsa-runtime-wrapper/samples/MonteCarloAsianDP/MonteCarloAsianDP_Kernels.cl' | |
source_filename = "/home/phi/codebase/hsa-runtime-wrapper/samples/MonteCarloAsianDP/MonteCarloAsianDP_Kernels.cl" | |
target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5:32:32-p24:64:64-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64" | |
target triple = "amdgcn--amdhsa" | |
%struct._MonteCalroAttrib = type { <4 x double>, <4 x double>, <4 x double>, <4 x double>, <4 x double>, <4 x double>, <4 x double> } | |
@PIBITS_TBL = linkonce_odr addrspace(2) constant [158 x i8] c"\E0\F1\1B\C1\0CX!t5~\C4~\ED\AF\A9KJ)\DE\E7\1C\F4\EC\C5\97\AF\1F\EB\9E\D4\B5\A8\7Fy\9A\FD\18=\DD&,\9F<\FB\D9\B4}\B4)h-F\BC\BC?`\16x\FF_\E2\7F\EC\A0\E4\F7.~\11r\D2\E7L\0D\E6XG\E6\04\F9}\D1\9A\C0q\A6\13\12\ED\BA\D4\D7\08\A2\FB\9C\A6\C4r\ACw\F8sHF'\A8\BB$\19\80K7\09\E9\B8\91\DC\86\15\EFz\AF\8EE\F9\07A\0E\F1dV\8Am\03w\D3\D4G_\9D\F0\A7T\109\B9\0D\E6\8B\02\00\00\00\00\00\00\00", align 1 | |
@TWO_TO_JBY64_EP = linkonce_odr addrspace(2) constant [64 x <2 x double>] [<2 x double> <double 1.000000e+00, double 0.000000e+00>, <2 x double> <double 0x3FF02C9A30000000, double 0x3E6CEF00C1DCDEF9>, <2 x double> <double 0x3FF059B0D0000000, double 0x3E48AC2BA1D73E2A>, <2 x double> <double 0x3FF0874510000000, double 0x3E60EB37901186BE>, <2 x double> <double 0x3FF0B55860000000, double 0x3E69F3121EC53172>, <2 x double> <double 0x3FF0E3EC30000000, double 0x3E469E8D10103A17>, <2 x double> <double 0x3FF11301D0000000, double 0x3DF25B50A4EBBF1A>, <2 x double> <double 0x3FF1429AA0000000, double 0x3E6D525BBF668203>, <2 x double> <double 0x3FF172B830000000, double 0x3E68FAA2F5B9BEF9>, <2 x double> <double 0x3FF1A35BE0000000, double 0x3E66DF96EA796D31>, <2 x double> <double 0x3FF1D48730000000, double 0x3E368B9AA7805B80>, <2 x double> <double 0x3FF2063B80000000, double 0x3E60C519AC771DD6>, <2 x double> <double 0x3FF2387A60000000, double 0x3E6CEAC470CD83F5>, <2 x double> <double 0x3FF26B4560000000, double 0x3E5789F37495E99C>, <2 x double> <double 0x3FF29E9DF0000000, double 0x3E547F7B84B09745>, <2 x double> <double 0x3FF2D285A0000000, double 0x3E5B900C2D002475>, <2 x double> <double 0x3FF306FE00000000, double 0x3E64636E2A5BD1AB>, <2 x double> <double 0x3FF33C08B0000000, double 0x3E4320B7FA64E430>, <2 x double> <double 0x3FF371A730000000, double 0x3E5CEAA72A9C5154>, <2 x double> <double 0x3FF3A7DB30000000, double 0x3E53967FDBA86F24>, <2 x double> <double 0x3FF3DEA640000000, double 0x3E682468446B6824>, <2 x double> <double 0x3FF4160A20000000, double 0x3E3F72E29F84325B>, <2 x double> <double 0x3FF44E0860000000, double 0x3E18624B40C4DBD0>, <2 x double> <double 0x3FF486A2B0000000, double 0x3E5704F3404F068E>, <2 x double> <double 0x3FF4BFDAD0000000, double 0x3E54D8A89C750E5E>, <2 x double> <double 0x3FF4F9B270000000, double 0x3E5A74B29AB4CF62>, <2 x double> <double 0x3FF5342B50000000, double 0x3E5A753E077C2A0F>, <2 x double> <double 0x3FF56F4730000000, double 0x3E5AD49F699BB2C0>, <2 x double> <double 0x3FF5AB07D0000000, double 0x3E6A90A852B19260>, <2 x double> <double 0x3FF5E76F10000000, double 0x3E56B48521BA6F93>, <2 x double> <double 0x3FF6247EB0000000, double 0x3E0D2AC258F87D03>, <2 x double> <double 0x3FF6623880000000, double 0x3E42A91124893ECF>, <2 x double> <double 0x3FF6A09E60000000, double 0x3E59FCEF32422CBE>, <2 x double> <double 0x3FF6DFB230000000, double 0x3E68CA345DE441C5>, <2 x double> <double 0x3FF71F75E0000000, double 0x3E61D8BEE7BA46E1>, <2 x double> <double 0x3FF75FEB50000000, double 0x3E59099F22FDBA6A>, <2 x double> <double 0x3FF7A11470000000, double 0x3E4F580C36BEA881>, <2 x double> <double 0x3FF7E2F330000000, double 0x3E5B3D398841740A>, <2 x double> <double 0x3FF8258990000000, double 0x3E62999C25159F11>, <2 x double> <double 0x3FF868D990000000, double 0x3E668925D901C83B>, <2 x double> <double 0x3FF8ACE540000000, double 0x3E415506DADD3E2A>, <2 x double> <double 0x3FF8F1AE90000000, double 0x3E622AEE6C57304E>, <2 x double> <double 0x3FF93737B0000000, double 0x3E29B8BC9E8A0387>, <2 x double> <double 0x3FF97D8290000000, double 0x3E6FBC9C9F173D24>, <2 x double> <double 0x3FF9C49180000000, double 0x3E451F8480E3E235>, <2 x double> <double 0x3FFA0C6670000000, double 0x3E66BBCAC96535B5>, <2 x double> <double 0x3FFA5503B0000000, double 0x3E41F12AE45A1224>, <2 x double> <double 0x3FFA9E6B50000000, double 0x3E55E7F6FD0FAC90>, <2 x double> <double 0x3FFAE89F90000000, double 0x3E62B5A75ABD0E69>, <2 x double> <double 0x3FFB33A2B0000000, double 0x3E609E2BF5ED7FA1>, <2 x double> <double 0x3FFB7F76F0000000, double 0x3E47DAF237553D84>, <2 x double> <double 0x3FFBCC1E90000000, double 0x3E12F074891EE83D>, <2 x double> <double 0x3FFC199BD0000000, double 0x3E6B0AA538444196>, <2 x double> <double 0x3FFC67F120000000, double 0x3E6CAFA29694426F>, <2 x double> <double 0x3FFCB720D0000000, double 0x3E69DF20D22A0797>, <2 x double> <double 0x3FFD072D40000000, double 0x3E640F12F71A1E45>, <2 x double> <double 0x3FFD5818D0000000, double 0x3E69F7490E4BB40B>, <2 x double> <double 0x3FFDA9E600000000, double 0x3E4ED9942B84600D>, <2 x double> <double 0x3FFDFC9730000000, double 0x3E4BDCDAF5CB4656>, <2 x double> <double 0x3FFE502EE0000000, double 0x3E5E2CFFD89CF44C>, <2 x double> <double 0x3FFEA4AFA0000000, double 0x3E452486CC2C7B9D>, <2 x double> <double 0x3FFEFA1BE0000000, double 0x3E6CC2B44EEE3FA4>, <2 x double> <double 0x3FFF507650000000, double 0x3E66DC8A80CE9F09>, <2 x double> <double 0x3FFFA7C180000000, double 0x3E39E90D82E90A7E>], align 16 | |
@LN_TBL = linkonce_odr addrspace(2) constant [65 x <2 x double>] [<2 x double> zeroinitializer, <2 x double> <double 0x3F8FC0A800000000, double 0x3E361F807C79F3DB>, <2 x double> <double 0x3F9F829800000000, double 0x3E6873C1980267C8>, <2 x double> <double 0x3FA7745800000000, double 0x3E5EC65B9F88C69E>, <2 x double> <double 0x3FAF0A3000000000, double 0x3E58022C54CC2F99>, <2 x double> <double 0x3FB341D700000000, double 0x3E62C37A3A125330>, <2 x double> <double 0x3FB6F0D200000000, double 0x3E615CAD69737C93>, <2 x double> <double 0x3FBA926D00000000, double 0x3E4D256AB1B285E9>, <2 x double> <double 0x3FBE270700000000, double 0x3E5B8ABCB97A7AA2>, <2 x double> <double 0x3FC0D77E00000000, double 0x3E6F34239659A5DC>, <2 x double> <double 0x3FC2955280000000, double 0x3E6E07FD48D30177>, <2 x double> <double 0x3FC44D2B00000000, double 0x3E6B32DF4799F4F6>, <2 x double> <double 0x3FC5FF3000000000, double 0x3E6C29E4F4F21CF8>, <2 x double> <double 0x3FC7AB8900000000, double 0x3E1086C848DF1B59>, <2 x double> <double 0x3FC9525A80000000, double 0x3E4CF456B4764130>, <2 x double> <double 0x3FCAF3C900000000, double 0x3E63A02FFCB63398>, <2 x double> <double 0x3FCC8FF780000000, double 0x3E61E6A6886B0976>, <2 x double> <double 0x3FCE270700000000, double 0x3E6B8ABCB97A7AA2>, <2 x double> <double 0x3FCFB91800000000, double 0x3E6B578F8AA35552>, <2 x double> <double 0x3FD0A324C0000000, double 0x3E6139C871AFB9FC>, <2 x double> <double 0x3FD1675C80000000, double 0x3E65D5D30701CE64>, <2 x double> <double 0x3FD22941C0000000, double 0x3E6DE7BCB2D12142>, <2 x double> <double 0x3FD2E8E280000000, double 0x3E6D708E984E1664>, <2 x double> <double 0x3FD3A64C40000000, double 0x3E556945E9C72F36>, <2 x double> <double 0x3FD4618BC0000000, double 0x3E20E2F613E85BDA>, <2 x double> <double 0x3FD51AAD80000000, double 0x3E3CB7E0B42724F6>, <2 x double> <double 0x3FD5D1BD80000000, double 0x3E6FAC04E52846C7>, <2 x double> <double 0x3FD686C800000000, double 0x3E5E9B14AEC442BE>, <2 x double> <double 0x3FD739D7C0000000, double 0x3E6B5DE8034E7126>, <2 x double> <double 0x3FD7EAF800000000, double 0x3E6DC157E1B259D3>, <2 x double> <double 0x3FD89A3380000000, double 0x3E3B05096AD69C62>, <2 x double> <double 0x3FD9479400000000, double 0x3E5C2116FABA4CDD>, <2 x double> <double 0x3FD9F323C0000000, double 0x3E665FCC25F95B47>, <2 x double> <double 0x3FDA9CEC80000000, double 0x3E5A9A08498D4850>, <2 x double> <double 0x3FDB44F740000000, double 0x3E6DE647B1465F77>, <2 x double> <double 0x3FDBEB4D80000000, double 0x3E5DA71B7BF7861D>, <2 x double> <double 0x3FDC8FF7C0000000, double 0x3E3E6A6886B09760>, <2 x double> <double 0x3FDD32FE40000000, double 0x3E6F0075EAB0EF64>, <2 x double> <double 0x3FDDD46A00000000, double 0x3E33071282FB989B>, <2 x double> <double 0x3FDE744240000000, double 0x3E60EB43C3F1BED2>, <2 x double> <double 0x3FDF128F40000000, double 0x3E5FAF06ECB35C84>, <2 x double> <double 0x3FDFAF5880000000, double 0x3E4EF1E63DB35F68>, <2 x double> <double 0x3FE02552A0000000, double 0x3E469743FB1A71A5>, <2 x double> <double 0x3FE0723E40000000, double 0x3E6C1CDF404E5796>, <2 x double> <double 0x3FE0BE72E0000000, double 0x3E4094AA0ADA625E>, <2 x double> <double 0x3FE109F380000000, double 0x3E6E2D4C96FDE3EC>, <2 x double> <double 0x3FE154C3C0000000, double 0x3E62F4D5E9A98F34>, <2 x double> <double 0x3FE19EE6A0000000, double 0x3E6467C96ECC5CBE>, <2 x double> <double 0x3FE1E85F40000000, double 0x3E6E7040D03DEC5A>, <2 x double> <double 0x3FE23130C0000000, double 0x3E67BEBF4282DE36>, <2 x double> <double 0x3FE2795E00000000, double 0x3E6289B11AEB783F>, <2 x double> <double 0x3FE2C0E9E0000000, double 0x3E5A891D1772F538>, <2 x double> <double 0x3FE307D720000000, double 0x3E634F10BE1FB591>, <2 x double> <double 0x3FE34E2880000000, double 0x3E6D9CE1D316EB93>, <2 x double> <double 0x3FE393E0C0000000, double 0x3E63562A19A9C442>, <2 x double> <double 0x3FE3D90260000000, double 0x3E54E2ADF548084C>, <2 x double> <double 0x3FE41D8FE0000000, double 0x3E508CE55CC8C97A>, <2 x double> <double 0x3FE4618BC0000000, double 0x3E30E2F613E85BDA>, <2 x double> <double 0x3FE4A4F840000000, double 0x3E6DB03EBB0227BF>, <2 x double> <double 0x3FE4E7D800000000, double 0x3E61B75BB09CB098>, <2 x double> <double 0x3FE52A2D20000000, double 0x3E496F16ABB9DF22>, <2 x double> <double 0x3FE56BF9C0000000, double 0x3E65B3F399411C62>, <2 x double> <double 0x3FE5AD4040000000, double 0x3E586B3E59F65355>, <2 x double> <double 0x3FE5EE02A0000000, double 0x3E52482CEAE1AC12>, <2 x double> <double 0x3FE62E42E0000000, double 0x3E6EFA39EF35793C>], align 16 | |
; Function Attrs: norecurse nounwind | |
define void @lshift128(<4 x i32>, i32, <4 x i32> addrspace(4)* nocapture) #0 { | |
%4 = extractelement <4 x i32> %0, i32 0 | |
%5 = and i32 %1, 31 | |
%6 = shl i32 %4, %5 | |
%7 = insertelement <4 x i32> undef, i32 %6, i32 0 | |
%8 = extractelement <4 x i32> %0, i32 1 | |
%9 = shl i32 %8, %5 | |
%10 = sub i32 0, %1 | |
%11 = and i32 %10, 31 | |
%12 = lshr i32 %4, %11 | |
%13 = or i32 %9, %12 | |
%14 = insertelement <4 x i32> %7, i32 %13, i32 1 | |
%15 = extractelement <4 x i32> %0, i32 2 | |
%16 = shl i32 %15, %5 | |
%17 = lshr i32 %8, %11 | |
%18 = or i32 %16, %17 | |
%19 = insertelement <4 x i32> %14, i32 %18, i32 2 | |
%20 = extractelement <4 x i32> %0, i32 3 | |
%21 = shl i32 %20, %5 | |
%22 = lshr i32 %15, %11 | |
%23 = or i32 %21, %22 | |
%24 = insertelement <4 x i32> %19, i32 %23, i32 3 | |
store <4 x i32> %24, <4 x i32> addrspace(4)* %2, align 16, !tbaa !7 | |
ret void | |
} | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.lifetime.start(i64, i8* nocapture) #1 | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.lifetime.end(i64, i8* nocapture) #1 | |
; Function Attrs: norecurse nounwind | |
define void @rshift128(<4 x i32>, i32, <4 x i32> addrspace(4)* nocapture) #0 { | |
%4 = extractelement <4 x i32> %0, i32 3 | |
%5 = and i32 %1, 31 | |
%6 = lshr i32 %4, %5 | |
%7 = insertelement <4 x i32> undef, i32 %6, i32 3 | |
%8 = extractelement <4 x i32> %0, i32 2 | |
%9 = lshr i32 %8, %5 | |
%10 = sub i32 0, %1 | |
%11 = and i32 %10, 31 | |
%12 = shl i32 %4, %11 | |
%13 = or i32 %9, %12 | |
%14 = insertelement <4 x i32> %7, i32 %13, i32 2 | |
%15 = extractelement <4 x i32> %0, i32 1 | |
%16 = lshr i32 %15, %5 | |
%17 = shl i32 %8, %11 | |
%18 = or i32 %16, %17 | |
%19 = insertelement <4 x i32> %14, i32 %18, i32 1 | |
%20 = extractelement <4 x i32> %0, i32 0 | |
%21 = lshr i32 %20, %5 | |
%22 = shl i32 %15, %11 | |
%23 = or i32 %21, %22 | |
%24 = insertelement <4 x i32> %19, i32 %23, i32 0 | |
store <4 x i32> %24, <4 x i32> addrspace(4)* %2, align 16, !tbaa !7 | |
ret void | |
} | |
; Function Attrs: nounwind | |
define void @generateRand(<4 x i32>, <4 x double> addrspace(4)* nocapture, <4 x double> addrspace(4)* nocapture, <4 x i32> addrspace(4)* nocapture) #2 { | |
%5 = alloca [8 x <4 x i32>], align 16 | |
%6 = alloca <4 x i32>, align 16 | |
%7 = alloca <4 x i32>, align 16 | |
%8 = bitcast [8 x <4 x i32>]* %5 to i8* | |
call void @llvm.lifetime.start(i64 128, i8* %8) #5 | |
%9 = bitcast <4 x i32>* %6 to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %9) #5 | |
%10 = bitcast <4 x i32>* %7 to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %10) #5 | |
%11 = lshr <4 x i32> %0, <i32 30, i32 30, i32 30, i32 30> | |
%12 = xor <4 x i32> %11, %0 | |
%13 = mul <4 x i32> %12, <i32 1812433253, i32 1812433253, i32 1812433253, i32 1812433253> | |
%14 = add <4 x i32> %13, <i32 1, i32 1, i32 1, i32 1> | |
%15 = lshr <4 x i32> %14, <i32 30, i32 30, i32 30, i32 30> | |
%16 = xor <4 x i32> %14, %15 | |
%17 = mul <4 x i32> %16, <i32 1812433253, i32 1812433253, i32 1812433253, i32 1812433253> | |
%18 = add <4 x i32> %17, <i32 2, i32 2, i32 2, i32 2> | |
%19 = lshr <4 x i32> %18, <i32 30, i32 30, i32 30, i32 30> | |
%20 = xor <4 x i32> %18, %19 | |
%21 = mul <4 x i32> %20, <i32 1812433253, i32 1812433253, i32 1812433253, i32 1812433253> | |
%22 = add <4 x i32> %21, <i32 3, i32 3, i32 3, i32 3> | |
%23 = lshr <4 x i32> %22, <i32 30, i32 30, i32 30, i32 30> | |
%24 = xor <4 x i32> %22, %23 | |
%25 = mul <4 x i32> %24, <i32 1812433253, i32 1812433253, i32 1812433253, i32 1812433253> | |
%26 = add <4 x i32> %25, <i32 4, i32 4, i32 4, i32 4> | |
%27 = addrspacecast <4 x i32>* %6 to <4 x i32> addrspace(4)* | |
%28 = addrspacecast <4 x i32>* %7 to <4 x i32> addrspace(4)* | |
%29 = getelementptr inbounds [8 x <4 x i32>], [8 x <4 x i32>]* %5, i32 0, i32 0 | |
%30 = getelementptr inbounds [8 x <4 x i32>], [8 x <4 x i32>]* %5, i32 0, i32 1 | |
%31 = getelementptr inbounds [8 x <4 x i32>], [8 x <4 x i32>]* %5, i32 0, i32 2 | |
%32 = extractelement <4 x i32> %0, i32 0 | |
%33 = shl i32 %32, 24 | |
%34 = extractelement <4 x i32> %0, i32 1 | |
%35 = shl i32 %34, 24 | |
%36 = lshr i32 %32, 8 | |
%37 = or i32 %35, %36 | |
%38 = extractelement <4 x i32> %0, i32 2 | |
%39 = shl i32 %38, 24 | |
%40 = lshr i32 %34, 8 | |
%41 = or i32 %39, %40 | |
%42 = extractelement <4 x i32> %0, i32 3 | |
%43 = shl i32 %42, 24 | |
%44 = lshr i32 %38, 8 | |
%45 = or i32 %43, %44 | |
%46 = extractelement <4 x i32> %22, i32 3 | |
%47 = lshr i32 %46, 24 | |
%48 = extractelement <4 x i32> %22, i32 2 | |
%49 = lshr i32 %48, 24 | |
%50 = shl i32 %46, 8 | |
%51 = or i32 %49, %50 | |
%52 = extractelement <4 x i32> %22, i32 1 | |
%53 = lshr i32 %52, 24 | |
%54 = shl i32 %48, 8 | |
%55 = or i32 %53, %54 | |
%56 = extractelement <4 x i32> %22, i32 0 | |
%57 = lshr i32 %56, 24 | |
%58 = shl i32 %52, 8 | |
%59 = or i32 %57, %58 | |
%60 = extractelement <4 x i32> %18, i32 0 | |
%61 = lshr i32 %60, 13 | |
%62 = and i32 %61, 473087 | |
%63 = extractelement <4 x i32> %26, i32 0 | |
%64 = shl i32 %63, 15 | |
%65 = xor i32 %62, %32 | |
%66 = xor i32 %65, %64 | |
%67 = xor i32 %66, %33 | |
%68 = xor i32 %67, %59 | |
%69 = insertelement <4 x i32> undef, i32 %68, i32 0 | |
%70 = extractelement <4 x i32> %18, i32 1 | |
%71 = lshr i32 %70, 13 | |
%72 = and i32 %71, 475005 | |
%73 = extractelement <4 x i32> %26, i32 1 | |
%74 = shl i32 %73, 15 | |
%75 = xor i32 %72, %34 | |
%76 = xor i32 %75, %74 | |
%77 = xor i32 %76, %37 | |
%78 = xor i32 %77, %55 | |
%79 = insertelement <4 x i32> %69, i32 %78, i32 1 | |
%80 = extractelement <4 x i32> %18, i32 2 | |
%81 = lshr i32 %80, 13 | |
%82 = and i32 %81, 490365 | |
%83 = extractelement <4 x i32> %26, i32 2 | |
%84 = shl i32 %83, 15 | |
%85 = xor i32 %82, %38 | |
%86 = xor i32 %85, %84 | |
%87 = xor i32 %86, %41 | |
%88 = xor i32 %87, %51 | |
%89 = insertelement <4 x i32> %79, i32 %88, i32 2 | |
%90 = extractelement <4 x i32> %18, i32 3 | |
%91 = lshr i32 %90, 13 | |
%92 = and i32 %91, 523055 | |
%93 = extractelement <4 x i32> %26, i32 3 | |
%94 = shl i32 %93, 15 | |
%95 = xor i32 %92, %42 | |
%96 = xor i32 %95, %94 | |
%97 = xor i32 %96, %45 | |
%98 = xor i32 %97, %47 | |
%99 = insertelement <4 x i32> %89, i32 %98, i32 3 | |
store <4 x i32> %99, <4 x i32>* %29, align 16 | |
%100 = extractelement <4 x i32> %14, i32 0 | |
%101 = shl i32 %100, 24 | |
%102 = extractelement <4 x i32> %14, i32 1 | |
%103 = shl i32 %102, 24 | |
%104 = lshr i32 %100, 8 | |
%105 = or i32 %103, %104 | |
%106 = extractelement <4 x i32> %14, i32 2 | |
%107 = shl i32 %106, 24 | |
%108 = lshr i32 %102, 8 | |
%109 = or i32 %107, %108 | |
%110 = extractelement <4 x i32> %14, i32 3 | |
%111 = shl i32 %110, 24 | |
%112 = lshr i32 %106, 8 | |
%113 = or i32 %111, %112 | |
%114 = extractelement <4 x i32> %26, i32 3 | |
%115 = lshr i32 %114, 24 | |
%116 = extractelement <4 x i32> %26, i32 2 | |
%117 = lshr i32 %116, 24 | |
%118 = shl i32 %114, 8 | |
%119 = or i32 %117, %118 | |
%120 = extractelement <4 x i32> %26, i32 1 | |
%121 = lshr i32 %120, 24 | |
%122 = shl i32 %116, 8 | |
%123 = or i32 %121, %122 | |
%124 = extractelement <4 x i32> %26, i32 0 | |
%125 = lshr i32 %124, 24 | |
%126 = shl i32 %120, 8 | |
%127 = or i32 %125, %126 | |
%128 = extractelement <4 x i32> %22, i32 0 | |
%129 = lshr i32 %128, 13 | |
%130 = and i32 %129, 473087 | |
%131 = shl i32 %68, 15 | |
%132 = xor i32 %130, %100 | |
%133 = xor i32 %132, %131 | |
%134 = xor i32 %133, %101 | |
%135 = xor i32 %134, %127 | |
%136 = insertelement <4 x i32> undef, i32 %135, i32 0 | |
%137 = extractelement <4 x i32> %22, i32 1 | |
%138 = lshr i32 %137, 13 | |
%139 = and i32 %138, 475005 | |
%140 = shl i32 %78, 15 | |
%141 = xor i32 %139, %102 | |
%142 = xor i32 %141, %140 | |
%143 = xor i32 %142, %105 | |
%144 = xor i32 %143, %123 | |
%145 = insertelement <4 x i32> %136, i32 %144, i32 1 | |
%146 = extractelement <4 x i32> %22, i32 2 | |
%147 = lshr i32 %146, 13 | |
%148 = and i32 %147, 490365 | |
%149 = shl i32 %88, 15 | |
%150 = xor i32 %148, %106 | |
%151 = xor i32 %150, %149 | |
%152 = xor i32 %151, %109 | |
%153 = xor i32 %152, %119 | |
%154 = insertelement <4 x i32> %145, i32 %153, i32 2 | |
%155 = extractelement <4 x i32> %22, i32 3 | |
%156 = lshr i32 %155, 13 | |
%157 = and i32 %156, 523055 | |
%158 = shl i32 %98, 15 | |
%159 = xor i32 %157, %110 | |
%160 = xor i32 %159, %158 | |
%161 = xor i32 %160, %113 | |
%162 = xor i32 %161, %115 | |
%163 = insertelement <4 x i32> %154, i32 %162, i32 3 | |
store <4 x i32> %163, <4 x i32>* %30, align 16 | |
%164 = extractelement <4 x i32> %18, i32 0 | |
%165 = shl i32 %164, 24 | |
%166 = extractelement <4 x i32> %18, i32 1 | |
%167 = shl i32 %166, 24 | |
%168 = lshr i32 %164, 8 | |
%169 = or i32 %167, %168 | |
%170 = extractelement <4 x i32> %18, i32 2 | |
%171 = shl i32 %170, 24 | |
%172 = lshr i32 %166, 8 | |
%173 = or i32 %171, %172 | |
%174 = extractelement <4 x i32> %18, i32 3 | |
%175 = shl i32 %174, 24 | |
%176 = lshr i32 %170, 8 | |
%177 = or i32 %175, %176 | |
%178 = lshr i32 %97, 24 | |
%179 = lshr i32 %88, 24 | |
%180 = shl i32 %98, 8 | |
%181 = or i32 %179, %180 | |
%182 = lshr i32 %78, 24 | |
%183 = shl i32 %88, 8 | |
%184 = or i32 %182, %183 | |
%185 = lshr i32 %68, 24 | |
%186 = shl i32 %78, 8 | |
%187 = or i32 %185, %186 | |
%188 = extractelement <4 x i32> %26, i32 0 | |
%189 = lshr i32 %188, 13 | |
%190 = and i32 %189, 473087 | |
%191 = shl i32 %135, 15 | |
%192 = xor i32 %190, %164 | |
%193 = xor i32 %192, %191 | |
%194 = xor i32 %193, %165 | |
%195 = xor i32 %194, %187 | |
%196 = insertelement <4 x i32> undef, i32 %195, i32 0 | |
%197 = extractelement <4 x i32> %26, i32 1 | |
%198 = lshr i32 %197, 13 | |
%199 = and i32 %198, 475005 | |
%200 = shl i32 %144, 15 | |
%201 = xor i32 %199, %166 | |
%202 = xor i32 %201, %200 | |
%203 = xor i32 %202, %169 | |
%204 = xor i32 %203, %184 | |
%205 = insertelement <4 x i32> %196, i32 %204, i32 1 | |
%206 = extractelement <4 x i32> %26, i32 2 | |
%207 = lshr i32 %206, 13 | |
%208 = and i32 %207, 490365 | |
%209 = shl i32 %153, 15 | |
%210 = xor i32 %208, %170 | |
%211 = xor i32 %210, %209 | |
%212 = xor i32 %211, %173 | |
%213 = xor i32 %212, %181 | |
%214 = insertelement <4 x i32> %205, i32 %213, i32 2 | |
%215 = extractelement <4 x i32> %26, i32 3 | |
%216 = lshr i32 %215, 13 | |
%217 = and i32 %216, 523055 | |
%218 = shl i32 %162, 15 | |
%219 = xor i32 %217, %174 | |
%220 = xor i32 %219, %218 | |
%221 = xor i32 %220, %177 | |
%222 = xor i32 %221, %178 | |
%223 = insertelement <4 x i32> %214, i32 %222, i32 3 | |
store <4 x i32> %223, <4 x i32>* %31, align 16 | |
%224 = extractelement <4 x i32> %22, i32 0 | |
%225 = shl i32 %224, 24 | |
%226 = insertelement <4 x i32> undef, i32 %225, i32 0 | |
%227 = extractelement <4 x i32> %22, i32 1 | |
%228 = shl i32 %227, 24 | |
%229 = lshr i32 %224, 8 | |
%230 = or i32 %228, %229 | |
%231 = insertelement <4 x i32> %226, i32 %230, i32 1 | |
%232 = extractelement <4 x i32> %22, i32 2 | |
%233 = shl i32 %232, 24 | |
%234 = lshr i32 %227, 8 | |
%235 = or i32 %233, %234 | |
%236 = insertelement <4 x i32> %231, i32 %235, i32 2 | |
%237 = extractelement <4 x i32> %22, i32 3 | |
%238 = shl i32 %237, 24 | |
%239 = lshr i32 %232, 8 | |
%240 = or i32 %238, %239 | |
%241 = insertelement <4 x i32> %236, i32 %240, i32 3 | |
store <4 x i32> %241, <4 x i32> addrspace(4)* %27, align 16, !tbaa !7 | |
%242 = lshr i32 %161, 24 | |
%243 = insertelement <4 x i32> undef, i32 %242, i32 3 | |
%244 = lshr i32 %153, 24 | |
%245 = shl i32 %162, 8 | |
%246 = or i32 %244, %245 | |
%247 = insertelement <4 x i32> %243, i32 %246, i32 2 | |
%248 = lshr i32 %144, 24 | |
%249 = shl i32 %153, 8 | |
%250 = or i32 %248, %249 | |
%251 = insertelement <4 x i32> %247, i32 %250, i32 1 | |
%252 = lshr i32 %135, 24 | |
%253 = shl i32 %144, 8 | |
%254 = or i32 %252, %253 | |
%255 = insertelement <4 x i32> %251, i32 %254, i32 0 | |
store <4 x i32> %255, <4 x i32> addrspace(4)* %28, align 16, !tbaa !7 | |
%256 = extractelement <4 x i32> %0, i32 0 | |
%257 = lshr i32 %256, 13 | |
%258 = and i32 %257, 473087 | |
%259 = shl i32 %195, 15 | |
%260 = xor i32 %258, %224 | |
%261 = xor i32 %260, %259 | |
%262 = xor i32 %261, %225 | |
%263 = xor i32 %262, %254 | |
%264 = getelementptr inbounds [8 x <4 x i32>], [8 x <4 x i32>]* %5, i32 0, i32 3 | |
%265 = insertelement <4 x i32> undef, i32 %263, i32 0 | |
%266 = extractelement <4 x i32> %0, i32 1 | |
%267 = lshr i32 %266, 13 | |
%268 = and i32 %267, 475005 | |
%269 = shl i32 %204, 15 | |
%270 = xor i32 %268, %227 | |
%271 = xor i32 %270, %269 | |
%272 = xor i32 %271, %230 | |
%273 = xor i32 %272, %250 | |
%274 = insertelement <4 x i32> %265, i32 %273, i32 1 | |
%275 = extractelement <4 x i32> %0, i32 2 | |
%276 = lshr i32 %275, 13 | |
%277 = and i32 %276, 490365 | |
%278 = shl i32 %213, 15 | |
%279 = xor i32 %277, %232 | |
%280 = xor i32 %279, %278 | |
%281 = xor i32 %280, %235 | |
%282 = xor i32 %281, %246 | |
%283 = insertelement <4 x i32> %274, i32 %282, i32 2 | |
%284 = extractelement <4 x i32> %0, i32 3 | |
%285 = lshr i32 %284, 13 | |
%286 = and i32 %285, 523055 | |
%287 = shl i32 %222, 15 | |
%288 = xor i32 %286, %237 | |
%289 = xor i32 %288, %287 | |
%290 = xor i32 %289, %240 | |
%291 = xor i32 %290, %242 | |
%292 = insertelement <4 x i32> %283, i32 %291, i32 3 | |
store <4 x i32> %292, <4 x i32>* %264, align 16 | |
%293 = uitofp i32 %68 to double | |
%294 = insertelement <4 x double> undef, double %293, i32 0 | |
%295 = uitofp i32 %78 to double | |
%296 = insertelement <4 x double> %294, double %295, i32 1 | |
%297 = uitofp i32 %88 to double | |
%298 = insertelement <4 x double> undef, double %297, i32 0 | |
%299 = uitofp i32 %98 to double | |
%300 = insertelement <4 x double> %298, double %299, i32 1 | |
%301 = shufflevector <4 x double> %296, <4 x double> %300, <4 x i32> <i32 0, i32 1, i32 4, i32 5> | |
%302 = fdiv <4 x double> %301, <double 0x41F0000000000000, double 0x41F0000000000000, double 0x41F0000000000000, double 0x41F0000000000000> | |
%303 = uitofp i32 %135 to double | |
%304 = insertelement <4 x double> undef, double %303, i32 0 | |
%305 = uitofp i32 %144 to double | |
%306 = insertelement <4 x double> %304, double %305, i32 1 | |
%307 = uitofp i32 %153 to double | |
%308 = insertelement <4 x double> undef, double %307, i32 0 | |
%309 = uitofp i32 %162 to double | |
%310 = insertelement <4 x double> %308, double %309, i32 1 | |
%311 = shufflevector <4 x double> %306, <4 x double> %310, <4 x i32> <i32 0, i32 1, i32 4, i32 5> | |
%312 = fdiv <4 x double> %311, <double 0x41F0000000000000, double 0x41F0000000000000, double 0x41F0000000000000, double 0x41F0000000000000> | |
%313 = extractelement <4 x double> %302, i32 0 | |
%314 = fcmp oge double %313, 0x3FEE0FAA00000000 | |
%315 = fcmp ole double %313, 0x3FF1082C00000000 | |
%316 = and i1 %314, %315 | |
%317 = fadd double %313, -1.000000e+00 | |
%318 = fadd double %317, 2.000000e+00 | |
%319 = fdiv double %317, %318 | |
%320 = fmul double %317, %319 | |
%321 = fadd double %319, %319 | |
%322 = fmul double %321, %321 | |
%323 = fmul double %321, %322 | |
%324 = tail call double @llvm.fma.f64(double %322, double 0x3F3C8034C85DFFF0, double 0x3F62492307F1519F) #6 | |
%325 = tail call double @llvm.fma.f64(double %322, double %324, double 0x3F89999999BAC6D4) #6 | |
%326 = tail call double @llvm.fma.f64(double %322, double %325, double 0x3FB55555555554E6) #6 | |
%327 = fsub double -0.000000e+00, %320 | |
%328 = tail call double @llvm.fma.f64(double %323, double %326, double %327) #6 | |
%329 = bitcast double %317 to i64 | |
%330 = and i64 %329, -4294967296 | |
%331 = bitcast i64 %330 to double | |
%332 = fsub double %317, %331 | |
%333 = fadd double %332, %328 | |
%334 = fmul double %333, 0x3ECB295C17F0BBBE | |
%335 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %331, double %334) #6 | |
%336 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %333, double %335) #6 | |
%337 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %331, double %336) #6 | |
%338 = bitcast double %313 to i64 | |
%339 = or i64 %338, 274719577269600256 | |
%340 = bitcast i64 %339 to double | |
%341 = fadd double %340, 0x83D0000000000000 | |
%342 = bitcast double %341 to i64 | |
%343 = icmp ult i64 %338, 4503599627370496 | |
%344 = select i1 %343, i64 %342, i64 %338 | |
%345 = bitcast i64 %344 to <2 x i32> | |
%346 = extractelement <2 x i32> %345, i32 1 | |
%347 = lshr i32 %346, 20 | |
%348 = and i32 %347, 2047 | |
%349 = select i1 %343, i32 -1083, i32 -1023 | |
%350 = add nsw i32 %348, %349 | |
%351 = and i64 %344, 4503599627370495 | |
%352 = or i64 %351, 4602678819172646912 | |
%353 = bitcast i64 %352 to double | |
%354 = ashr i32 %346, 13 | |
%355 = lshr i32 %354, 1 | |
%356 = and i32 %355, 63 | |
%357 = or i32 %356, 64 | |
%358 = and i32 %354, 1 | |
%359 = add nuw nsw i32 %357, %358 | |
%360 = add nsw i32 %359, -64 | |
%361 = sext i32 %360 to i64 | |
%362 = getelementptr inbounds [65 x <2 x double>], [65 x <2 x double>] addrspace(2)* @LN_TBL, i64 0, i64 %361 | |
%363 = load <2 x double>, <2 x double> addrspace(2)* %362, align 16, !tbaa !7 | |
%364 = extractelement <2 x double> %363, i32 0 | |
%365 = extractelement <2 x double> %363, i32 1 | |
%366 = sitofp i32 %359 to double | |
%367 = fmul double %366, 7.812500e-03 | |
%368 = fsub double %353, %367 | |
%369 = tail call double @llvm.fma.f64(double %368, double 5.000000e-01, double %367) #6 | |
%370 = fdiv double %368, %369 | |
%371 = fmul double %370, %370 | |
%372 = tail call double @llvm.fma.f64(double %371, double 0x3F6249423BD94741, double 0x3F89999999865EDE) #6 | |
%373 = tail call double @llvm.fma.f64(double %371, double %372, double 0x3FB5555555555557) #6 | |
%374 = fmul double %371, %373 | |
%375 = tail call double @llvm.fma.f64(double %370, double %374, double %370) #6 | |
%376 = fadd double %365, %375 | |
%377 = sitofp i32 %350 to double | |
%378 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %364, double %377) #6 | |
%379 = fmul double %376, 0x3ECB295C17F0BBBE | |
%380 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %364, double %379) #6 | |
%381 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %376, double %380) #6 | |
%382 = fadd double %378, %381 | |
%383 = select i1 %316, double %337, double %382 | |
%384 = tail call double @llvm.fabs.f64(double %313) #3 | |
%385 = fcmp oeq double %384, 0x7FF0000000000000 | |
%386 = fcmp uno double %313, 0.000000e+00 | |
%387 = fcmp olt double %313, 0.000000e+00 | |
%388 = or i1 %386, %387 | |
%389 = fcmp oeq double %313, 0.000000e+00 | |
%390 = fmul double %383, 0x3FE62E42FEFA39EF | |
%391 = select i1 %385, double 0x7FF0000000000000, double %390 | |
%392 = select i1 %388, double 0x7FF8000000000000, double %391 | |
%393 = select i1 %389, double 0xFFF0000000000000, double %392 | |
%394 = insertelement <4 x double> undef, double %393, i32 0 | |
%395 = extractelement <4 x double> %302, i32 1 | |
%396 = fcmp oge double %395, 0x3FEE0FAA00000000 | |
%397 = fcmp ole double %395, 0x3FF1082C00000000 | |
%398 = and i1 %396, %397 | |
%399 = fadd double %395, -1.000000e+00 | |
%400 = fadd double %399, 2.000000e+00 | |
%401 = fdiv double %399, %400 | |
%402 = fmul double %399, %401 | |
%403 = fadd double %401, %401 | |
%404 = fmul double %403, %403 | |
%405 = fmul double %403, %404 | |
%406 = tail call double @llvm.fma.f64(double %404, double 0x3F3C8034C85DFFF0, double 0x3F62492307F1519F) #6 | |
%407 = tail call double @llvm.fma.f64(double %404, double %406, double 0x3F89999999BAC6D4) #6 | |
%408 = tail call double @llvm.fma.f64(double %404, double %407, double 0x3FB55555555554E6) #6 | |
%409 = fsub double -0.000000e+00, %402 | |
%410 = tail call double @llvm.fma.f64(double %405, double %408, double %409) #6 | |
%411 = bitcast double %399 to i64 | |
%412 = and i64 %411, -4294967296 | |
%413 = bitcast i64 %412 to double | |
%414 = fsub double %399, %413 | |
%415 = fadd double %414, %410 | |
%416 = fmul double %415, 0x3ECB295C17F0BBBE | |
%417 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %413, double %416) #6 | |
%418 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %415, double %417) #6 | |
%419 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %413, double %418) #6 | |
%420 = bitcast double %395 to i64 | |
%421 = or i64 %420, 274719577269600256 | |
%422 = bitcast i64 %421 to double | |
%423 = fadd double %422, 0x83D0000000000000 | |
%424 = bitcast double %423 to i64 | |
%425 = icmp ult i64 %420, 4503599627370496 | |
%426 = select i1 %425, i64 %424, i64 %420 | |
%427 = bitcast i64 %426 to <2 x i32> | |
%428 = extractelement <2 x i32> %427, i32 1 | |
%429 = lshr i32 %428, 20 | |
%430 = and i32 %429, 2047 | |
%431 = select i1 %425, i32 -1083, i32 -1023 | |
%432 = add nsw i32 %430, %431 | |
%433 = and i64 %426, 4503599627370495 | |
%434 = or i64 %433, 4602678819172646912 | |
%435 = bitcast i64 %434 to double | |
%436 = ashr i32 %428, 13 | |
%437 = lshr i32 %436, 1 | |
%438 = and i32 %437, 63 | |
%439 = or i32 %438, 64 | |
%440 = and i32 %436, 1 | |
%441 = add nuw nsw i32 %439, %440 | |
%442 = add nsw i32 %441, -64 | |
%443 = sext i32 %442 to i64 | |
%444 = getelementptr inbounds [65 x <2 x double>], [65 x <2 x double>] addrspace(2)* @LN_TBL, i64 0, i64 %443 | |
%445 = load <2 x double>, <2 x double> addrspace(2)* %444, align 16, !tbaa !7 | |
%446 = extractelement <2 x double> %445, i32 0 | |
%447 = extractelement <2 x double> %445, i32 1 | |
%448 = sitofp i32 %441 to double | |
%449 = fmul double %448, 7.812500e-03 | |
%450 = fsub double %435, %449 | |
%451 = tail call double @llvm.fma.f64(double %450, double 5.000000e-01, double %449) #6 | |
%452 = fdiv double %450, %451 | |
%453 = fmul double %452, %452 | |
%454 = tail call double @llvm.fma.f64(double %453, double 0x3F6249423BD94741, double 0x3F89999999865EDE) #6 | |
%455 = tail call double @llvm.fma.f64(double %453, double %454, double 0x3FB5555555555557) #6 | |
%456 = fmul double %453, %455 | |
%457 = tail call double @llvm.fma.f64(double %452, double %456, double %452) #6 | |
%458 = fadd double %447, %457 | |
%459 = sitofp i32 %432 to double | |
%460 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %446, double %459) #6 | |
%461 = fmul double %458, 0x3ECB295C17F0BBBE | |
%462 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %446, double %461) #6 | |
%463 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %458, double %462) #6 | |
%464 = fadd double %460, %463 | |
%465 = select i1 %398, double %419, double %464 | |
%466 = tail call double @llvm.fabs.f64(double %395) #3 | |
%467 = fcmp oeq double %466, 0x7FF0000000000000 | |
%468 = fcmp uno double %395, 0.000000e+00 | |
%469 = fcmp olt double %395, 0.000000e+00 | |
%470 = or i1 %468, %469 | |
%471 = fcmp oeq double %395, 0.000000e+00 | |
%472 = fmul double %465, 0x3FE62E42FEFA39EF | |
%473 = select i1 %467, double 0x7FF0000000000000, double %472 | |
%474 = select i1 %470, double 0x7FF8000000000000, double %473 | |
%475 = select i1 %471, double 0xFFF0000000000000, double %474 | |
%476 = insertelement <4 x double> %394, double %475, i32 1 | |
%477 = extractelement <4 x double> %302, i32 2 | |
%478 = fcmp oge double %477, 0x3FEE0FAA00000000 | |
%479 = fcmp ole double %477, 0x3FF1082C00000000 | |
%480 = and i1 %478, %479 | |
%481 = fadd double %477, -1.000000e+00 | |
%482 = fadd double %481, 2.000000e+00 | |
%483 = fdiv double %481, %482 | |
%484 = fmul double %481, %483 | |
%485 = fadd double %483, %483 | |
%486 = fmul double %485, %485 | |
%487 = fmul double %485, %486 | |
%488 = tail call double @llvm.fma.f64(double %486, double 0x3F3C8034C85DFFF0, double 0x3F62492307F1519F) #6 | |
%489 = tail call double @llvm.fma.f64(double %486, double %488, double 0x3F89999999BAC6D4) #6 | |
%490 = tail call double @llvm.fma.f64(double %486, double %489, double 0x3FB55555555554E6) #6 | |
%491 = fsub double -0.000000e+00, %484 | |
%492 = tail call double @llvm.fma.f64(double %487, double %490, double %491) #6 | |
%493 = bitcast double %481 to i64 | |
%494 = and i64 %493, -4294967296 | |
%495 = bitcast i64 %494 to double | |
%496 = fsub double %481, %495 | |
%497 = fadd double %496, %492 | |
%498 = fmul double %497, 0x3ECB295C17F0BBBE | |
%499 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %495, double %498) #6 | |
%500 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %497, double %499) #6 | |
%501 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %495, double %500) #6 | |
%502 = bitcast double %477 to i64 | |
%503 = or i64 %502, 274719577269600256 | |
%504 = bitcast i64 %503 to double | |
%505 = fadd double %504, 0x83D0000000000000 | |
%506 = bitcast double %505 to i64 | |
%507 = icmp ult i64 %502, 4503599627370496 | |
%508 = select i1 %507, i64 %506, i64 %502 | |
%509 = bitcast i64 %508 to <2 x i32> | |
%510 = extractelement <2 x i32> %509, i32 1 | |
%511 = lshr i32 %510, 20 | |
%512 = and i32 %511, 2047 | |
%513 = select i1 %507, i32 -1083, i32 -1023 | |
%514 = add nsw i32 %512, %513 | |
%515 = and i64 %508, 4503599627370495 | |
%516 = or i64 %515, 4602678819172646912 | |
%517 = bitcast i64 %516 to double | |
%518 = ashr i32 %510, 13 | |
%519 = lshr i32 %518, 1 | |
%520 = and i32 %519, 63 | |
%521 = or i32 %520, 64 | |
%522 = and i32 %518, 1 | |
%523 = add nuw nsw i32 %521, %522 | |
%524 = add nsw i32 %523, -64 | |
%525 = sext i32 %524 to i64 | |
%526 = getelementptr inbounds [65 x <2 x double>], [65 x <2 x double>] addrspace(2)* @LN_TBL, i64 0, i64 %525 | |
%527 = load <2 x double>, <2 x double> addrspace(2)* %526, align 16, !tbaa !7 | |
%528 = extractelement <2 x double> %527, i32 0 | |
%529 = extractelement <2 x double> %527, i32 1 | |
%530 = sitofp i32 %523 to double | |
%531 = fmul double %530, 7.812500e-03 | |
%532 = fsub double %517, %531 | |
%533 = tail call double @llvm.fma.f64(double %532, double 5.000000e-01, double %531) #6 | |
%534 = fdiv double %532, %533 | |
%535 = fmul double %534, %534 | |
%536 = tail call double @llvm.fma.f64(double %535, double 0x3F6249423BD94741, double 0x3F89999999865EDE) #6 | |
%537 = tail call double @llvm.fma.f64(double %535, double %536, double 0x3FB5555555555557) #6 | |
%538 = fmul double %535, %537 | |
%539 = tail call double @llvm.fma.f64(double %534, double %538, double %534) #6 | |
%540 = fadd double %529, %539 | |
%541 = sitofp i32 %514 to double | |
%542 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %528, double %541) #6 | |
%543 = fmul double %540, 0x3ECB295C17F0BBBE | |
%544 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %528, double %543) #6 | |
%545 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %540, double %544) #6 | |
%546 = fadd double %542, %545 | |
%547 = select i1 %480, double %501, double %546 | |
%548 = tail call double @llvm.fabs.f64(double %477) #3 | |
%549 = fcmp oeq double %548, 0x7FF0000000000000 | |
%550 = fcmp uno double %477, 0.000000e+00 | |
%551 = fcmp olt double %477, 0.000000e+00 | |
%552 = or i1 %550, %551 | |
%553 = fcmp oeq double %477, 0.000000e+00 | |
%554 = fmul double %547, 0x3FE62E42FEFA39EF | |
%555 = select i1 %549, double 0x7FF0000000000000, double %554 | |
%556 = select i1 %552, double 0x7FF8000000000000, double %555 | |
%557 = select i1 %553, double 0xFFF0000000000000, double %556 | |
%558 = insertelement <4 x double> undef, double %557, i32 0 | |
%559 = extractelement <4 x double> %302, i32 3 | |
%560 = fcmp oge double %559, 0x3FEE0FAA00000000 | |
%561 = fcmp ole double %559, 0x3FF1082C00000000 | |
%562 = and i1 %560, %561 | |
%563 = fadd double %559, -1.000000e+00 | |
%564 = fadd double %563, 2.000000e+00 | |
%565 = fdiv double %563, %564 | |
%566 = fmul double %563, %565 | |
%567 = fadd double %565, %565 | |
%568 = fmul double %567, %567 | |
%569 = fmul double %567, %568 | |
%570 = tail call double @llvm.fma.f64(double %568, double 0x3F3C8034C85DFFF0, double 0x3F62492307F1519F) #6 | |
%571 = tail call double @llvm.fma.f64(double %568, double %570, double 0x3F89999999BAC6D4) #6 | |
%572 = tail call double @llvm.fma.f64(double %568, double %571, double 0x3FB55555555554E6) #6 | |
%573 = fsub double -0.000000e+00, %566 | |
%574 = tail call double @llvm.fma.f64(double %569, double %572, double %573) #6 | |
%575 = bitcast double %563 to i64 | |
%576 = and i64 %575, -4294967296 | |
%577 = bitcast i64 %576 to double | |
%578 = fsub double %563, %577 | |
%579 = fadd double %578, %574 | |
%580 = fmul double %579, 0x3ECB295C17F0BBBE | |
%581 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %577, double %580) #6 | |
%582 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %579, double %581) #6 | |
%583 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %577, double %582) #6 | |
%584 = bitcast double %559 to i64 | |
%585 = or i64 %584, 274719577269600256 | |
%586 = bitcast i64 %585 to double | |
%587 = fadd double %586, 0x83D0000000000000 | |
%588 = bitcast double %587 to i64 | |
%589 = icmp ult i64 %584, 4503599627370496 | |
%590 = select i1 %589, i64 %588, i64 %584 | |
%591 = bitcast i64 %590 to <2 x i32> | |
%592 = extractelement <2 x i32> %591, i32 1 | |
%593 = lshr i32 %592, 20 | |
%594 = and i32 %593, 2047 | |
%595 = select i1 %589, i32 -1083, i32 -1023 | |
%596 = add nsw i32 %594, %595 | |
%597 = and i64 %590, 4503599627370495 | |
%598 = or i64 %597, 4602678819172646912 | |
%599 = bitcast i64 %598 to double | |
%600 = ashr i32 %592, 13 | |
%601 = lshr i32 %600, 1 | |
%602 = and i32 %601, 63 | |
%603 = or i32 %602, 64 | |
%604 = and i32 %600, 1 | |
%605 = add nuw nsw i32 %603, %604 | |
%606 = add nsw i32 %605, -64 | |
%607 = sext i32 %606 to i64 | |
%608 = getelementptr inbounds [65 x <2 x double>], [65 x <2 x double>] addrspace(2)* @LN_TBL, i64 0, i64 %607 | |
%609 = load <2 x double>, <2 x double> addrspace(2)* %608, align 16, !tbaa !7 | |
%610 = extractelement <2 x double> %609, i32 0 | |
%611 = extractelement <2 x double> %609, i32 1 | |
%612 = sitofp i32 %605 to double | |
%613 = fmul double %612, 7.812500e-03 | |
%614 = fsub double %599, %613 | |
%615 = tail call double @llvm.fma.f64(double %614, double 5.000000e-01, double %613) #6 | |
%616 = fdiv double %614, %615 | |
%617 = fmul double %616, %616 | |
%618 = tail call double @llvm.fma.f64(double %617, double 0x3F6249423BD94741, double 0x3F89999999865EDE) #6 | |
%619 = tail call double @llvm.fma.f64(double %617, double %618, double 0x3FB5555555555557) #6 | |
%620 = fmul double %617, %619 | |
%621 = tail call double @llvm.fma.f64(double %616, double %620, double %616) #6 | |
%622 = fadd double %611, %621 | |
%623 = sitofp i32 %596 to double | |
%624 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %610, double %623) #6 | |
%625 = fmul double %622, 0x3ECB295C17F0BBBE | |
%626 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %610, double %625) #6 | |
%627 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %622, double %626) #6 | |
%628 = fadd double %624, %627 | |
%629 = select i1 %562, double %583, double %628 | |
%630 = tail call double @llvm.fabs.f64(double %559) #3 | |
%631 = fcmp oeq double %630, 0x7FF0000000000000 | |
%632 = fcmp uno double %559, 0.000000e+00 | |
%633 = fcmp olt double %559, 0.000000e+00 | |
%634 = or i1 %632, %633 | |
%635 = fcmp oeq double %559, 0.000000e+00 | |
%636 = fmul double %629, 0x3FE62E42FEFA39EF | |
%637 = select i1 %631, double 0x7FF0000000000000, double %636 | |
%638 = select i1 %634, double 0x7FF8000000000000, double %637 | |
%639 = select i1 %635, double 0xFFF0000000000000, double %638 | |
%640 = insertelement <4 x double> %558, double %639, i32 1 | |
%641 = shufflevector <4 x double> %476, <4 x double> %640, <4 x i32> <i32 0, i32 1, i32 4, i32 5> | |
%642 = fmul <4 x double> %641, <double -2.000000e+00, double -2.000000e+00, double -2.000000e+00, double -2.000000e+00> | |
%643 = extractelement <4 x double> %642, i32 0 | |
%644 = fcmp olt double %643, 0x1000000000000000 | |
%645 = select i1 %644, i32 256, i32 0 | |
%646 = select i1 %644, i32 -128, i32 0 | |
%647 = tail call double @llvm.amdgcn.ldexp.f64(double %643, i32 %645) #5 | |
%648 = tail call double @llvm.amdgcn.rsq.f64(double %647) #5 | |
%649 = fmul double %647, %648 | |
%650 = fmul double %648, 5.000000e-01 | |
%651 = fsub double -0.000000e+00, %650 | |
%652 = tail call double @llvm.fma.f64(double %651, double %649, double 5.000000e-01) #6 | |
%653 = tail call double @llvm.fma.f64(double %649, double %652, double %649) #6 | |
%654 = fsub double -0.000000e+00, %653 | |
%655 = tail call double @llvm.fma.f64(double %654, double %653, double %647) #6 | |
%656 = tail call double @llvm.fma.f64(double %650, double %652, double %650) #6 | |
%657 = tail call double @llvm.fma.f64(double %655, double %656, double %653) #6 | |
%658 = fsub double -0.000000e+00, %657 | |
%659 = tail call double @llvm.fma.f64(double %658, double %657, double %647) #6 | |
%660 = tail call double @llvm.fma.f64(double %659, double %656, double %657) #6 | |
%661 = tail call double @llvm.amdgcn.ldexp.f64(double %660, i32 %646) #5 | |
%662 = fcmp oeq double %643, 0x7FF0000000000000 | |
%663 = fcmp oeq double %643, 0.000000e+00 | |
%664 = or i1 %662, %663 | |
%665 = select i1 %664, double %647, double %661 | |
%666 = insertelement <4 x double> undef, double %665, i32 0 | |
%667 = extractelement <4 x double> %642, i32 1 | |
%668 = fcmp olt double %667, 0x1000000000000000 | |
%669 = select i1 %668, i32 256, i32 0 | |
%670 = select i1 %668, i32 -128, i32 0 | |
%671 = tail call double @llvm.amdgcn.ldexp.f64(double %667, i32 %669) #5 | |
%672 = tail call double @llvm.amdgcn.rsq.f64(double %671) #5 | |
%673 = fmul double %671, %672 | |
%674 = fmul double %672, 5.000000e-01 | |
%675 = fsub double -0.000000e+00, %674 | |
%676 = tail call double @llvm.fma.f64(double %675, double %673, double 5.000000e-01) #6 | |
%677 = tail call double @llvm.fma.f64(double %673, double %676, double %673) #6 | |
%678 = fsub double -0.000000e+00, %677 | |
%679 = tail call double @llvm.fma.f64(double %678, double %677, double %671) #6 | |
%680 = tail call double @llvm.fma.f64(double %674, double %676, double %674) #6 | |
%681 = tail call double @llvm.fma.f64(double %679, double %680, double %677) #6 | |
%682 = fsub double -0.000000e+00, %681 | |
%683 = tail call double @llvm.fma.f64(double %682, double %681, double %671) #6 | |
%684 = tail call double @llvm.fma.f64(double %683, double %680, double %681) #6 | |
%685 = tail call double @llvm.amdgcn.ldexp.f64(double %684, i32 %670) #5 | |
%686 = fcmp oeq double %667, 0x7FF0000000000000 | |
%687 = fcmp oeq double %667, 0.000000e+00 | |
%688 = or i1 %686, %687 | |
%689 = select i1 %688, double %671, double %685 | |
%690 = insertelement <4 x double> %666, double %689, i32 1 | |
%691 = extractelement <4 x double> %642, i32 2 | |
%692 = fcmp olt double %691, 0x1000000000000000 | |
%693 = select i1 %692, i32 256, i32 0 | |
%694 = select i1 %692, i32 -128, i32 0 | |
%695 = tail call double @llvm.amdgcn.ldexp.f64(double %691, i32 %693) #5 | |
%696 = tail call double @llvm.amdgcn.rsq.f64(double %695) #5 | |
%697 = fmul double %695, %696 | |
%698 = fmul double %696, 5.000000e-01 | |
%699 = fsub double -0.000000e+00, %698 | |
%700 = tail call double @llvm.fma.f64(double %699, double %697, double 5.000000e-01) #6 | |
%701 = tail call double @llvm.fma.f64(double %697, double %700, double %697) #6 | |
%702 = fsub double -0.000000e+00, %701 | |
%703 = tail call double @llvm.fma.f64(double %702, double %701, double %695) #6 | |
%704 = tail call double @llvm.fma.f64(double %698, double %700, double %698) #6 | |
%705 = tail call double @llvm.fma.f64(double %703, double %704, double %701) #6 | |
%706 = fsub double -0.000000e+00, %705 | |
%707 = tail call double @llvm.fma.f64(double %706, double %705, double %695) #6 | |
%708 = tail call double @llvm.fma.f64(double %707, double %704, double %705) #6 | |
%709 = tail call double @llvm.amdgcn.ldexp.f64(double %708, i32 %694) #5 | |
%710 = fcmp oeq double %691, 0x7FF0000000000000 | |
%711 = fcmp oeq double %691, 0.000000e+00 | |
%712 = or i1 %710, %711 | |
%713 = select i1 %712, double %695, double %709 | |
%714 = insertelement <4 x double> undef, double %713, i32 0 | |
%715 = extractelement <4 x double> %642, i32 3 | |
%716 = fcmp olt double %715, 0x1000000000000000 | |
%717 = select i1 %716, i32 256, i32 0 | |
%718 = select i1 %716, i32 -128, i32 0 | |
%719 = tail call double @llvm.amdgcn.ldexp.f64(double %715, i32 %717) #5 | |
%720 = tail call double @llvm.amdgcn.rsq.f64(double %719) #5 | |
%721 = fmul double %719, %720 | |
%722 = fmul double %720, 5.000000e-01 | |
%723 = fsub double -0.000000e+00, %722 | |
%724 = tail call double @llvm.fma.f64(double %723, double %721, double 5.000000e-01) #6 | |
%725 = tail call double @llvm.fma.f64(double %721, double %724, double %721) #6 | |
%726 = fsub double -0.000000e+00, %725 | |
%727 = tail call double @llvm.fma.f64(double %726, double %725, double %719) #6 | |
%728 = tail call double @llvm.fma.f64(double %722, double %724, double %722) #6 | |
%729 = tail call double @llvm.fma.f64(double %727, double %728, double %725) #6 | |
%730 = fsub double -0.000000e+00, %729 | |
%731 = tail call double @llvm.fma.f64(double %730, double %729, double %719) #6 | |
%732 = tail call double @llvm.fma.f64(double %731, double %728, double %729) #6 | |
%733 = tail call double @llvm.amdgcn.ldexp.f64(double %732, i32 %718) #5 | |
%734 = fcmp oeq double %715, 0x7FF0000000000000 | |
%735 = fcmp oeq double %715, 0.000000e+00 | |
%736 = or i1 %734, %735 | |
%737 = select i1 %736, double %719, double %733 | |
%738 = insertelement <4 x double> %714, double %737, i32 1 | |
%739 = shufflevector <4 x double> %690, <4 x double> %738, <4 x i32> <i32 0, i32 1, i32 4, i32 5> | |
%740 = fmul <4 x double> %312, <double 0x401921FB54442D11, double 0x401921FB54442D11, double 0x401921FB54442D11, double 0x401921FB54442D11> | |
%741 = extractelement <4 x double> %740, i32 0 | |
%742 = tail call double @llvm.fabs.f64(double %741) #6 | |
%743 = fcmp olt double %742, 0x42E0000000000000 | |
br i1 %743, label %744, label %775 | |
; <label>:744: ; preds = %4 | |
%745 = tail call double @llvm.fma.f64(double %742, double 0x3FE45F306DC9C883, double 5.000000e-01) #6 | |
%746 = tail call double @llvm.trunc.f64(double %745) #6 | |
%747 = fmul double %746, 0xBFF921FB54442D18 | |
%748 = fsub double -0.000000e+00, %747 | |
%749 = tail call double @llvm.fma.f64(double 0xBFF921FB54442D18, double %746, double %748) #6 | |
%750 = fmul double %746, 0xBC91A62633145C06 | |
%751 = fsub double -0.000000e+00, %750 | |
%752 = tail call double @llvm.fma.f64(double 0xBC91A62633145C06, double %746, double %751) #6 | |
%753 = fmul double %746, 0xB94C1CD129024E08 | |
%754 = fsub double -0.000000e+00, %753 | |
%755 = tail call double @llvm.fma.f64(double 0xB94C1CD129024E08, double %746, double %754) #6 | |
%756 = fadd double %750, %749 | |
%757 = fsub double %756, %749 | |
%758 = fsub double %750, %757 | |
%759 = fadd double %753, %758 | |
%760 = fadd double %752, %759 | |
%761 = fadd double %755, %760 | |
%762 = fadd double %747, %756 | |
%763 = fsub double %762, %747 | |
%764 = fsub double %756, %763 | |
%765 = fadd double %764, %761 | |
%766 = fsub double %765, %764 | |
%767 = fsub double %761, %766 | |
%768 = fadd double %742, %762 | |
%769 = fadd double %768, %765 | |
%770 = fsub double %769, %768 | |
%771 = fsub double %765, %770 | |
%772 = fadd double %767, %771 | |
%773 = fptosi double %746 to i64 | |
%774 = trunc i64 %773 to i32 | |
br label %1010 | |
; <label>:775: ; preds = %4 | |
%776 = bitcast double %742 to i64 | |
%777 = lshr i64 %776, 52 | |
%778 = trunc i64 %777 to i32 | |
%779 = add nsw i32 %778, -1023 | |
%780 = ashr i32 %779, 3 | |
%781 = add nsw i32 %780, 17 | |
%782 = icmp slt i32 %781, 23 | |
%783 = select i1 %782, i32 23, i32 %781 | |
%784 = sub nsw i32 150, %783 | |
%785 = and i32 %784, -16 | |
%786 = sext i32 %785 to i64 | |
%787 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %786 | |
%788 = bitcast i8 addrspace(2)* %787 to <4 x i32> addrspace(2)* | |
%789 = load <4 x i32>, <4 x i32> addrspace(2)* %788, align 16, !tbaa !7 | |
%790 = add nsw i32 %785, 16 | |
%791 = sext i32 %790 to i64 | |
%792 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %791 | |
%793 = bitcast i8 addrspace(2)* %792 to <4 x i32> addrspace(2)* | |
%794 = load <4 x i32>, <4 x i32> addrspace(2)* %793, align 16, !tbaa !7 | |
%795 = add nsw i32 %785, 32 | |
%796 = sext i32 %795 to i64 | |
%797 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %796 | |
%798 = bitcast i8 addrspace(2)* %797 to <4 x i32> addrspace(2)* | |
%799 = load <4 x i32>, <4 x i32> addrspace(2)* %798, align 16, !tbaa !7 | |
%800 = lshr i32 %784, 2 | |
%801 = and i32 %800, 3 | |
%802 = insertelement <4 x i32> undef, i32 %801, i32 0 | |
%803 = shufflevector <4 x i32> %802, <4 x i32> undef, <4 x i32> zeroinitializer | |
%804 = icmp eq <4 x i32> %803, <i32 0, i32 1, i32 2, i32 3> | |
%805 = sext <4 x i1> %804 to <4 x i32> | |
%806 = extractelement <4 x i32> %805, i32 1 | |
%807 = icmp ne i32 %806, 0 | |
%808 = extractelement <4 x i32> %789, i32 1 | |
%809 = extractelement <4 x i32> %789, i32 0 | |
%810 = select i1 %807, i32 %808, i32 %809 | |
%811 = extractelement <4 x i32> %805, i32 2 | |
%812 = icmp ne i32 %811, 0 | |
%813 = extractelement <4 x i32> %789, i32 2 | |
%814 = select i1 %812, i32 %813, i32 %810 | |
%815 = extractelement <4 x i32> %805, i32 3 | |
%816 = icmp ne i32 %815, 0 | |
%817 = extractelement <4 x i32> %789, i32 3 | |
%818 = select i1 %816, i32 %817, i32 %814 | |
%819 = select i1 %807, i32 %813, i32 %808 | |
%820 = select i1 %812, i32 %817, i32 %819 | |
%821 = extractelement <4 x i32> %794, i32 0 | |
%822 = select i1 %816, i32 %821, i32 %820 | |
%823 = select i1 %807, i32 %817, i32 %813 | |
%824 = select i1 %812, i32 %821, i32 %823 | |
%825 = extractelement <4 x i32> %794, i32 1 | |
%826 = select i1 %816, i32 %825, i32 %824 | |
%827 = select i1 %807, i32 %821, i32 %817 | |
%828 = select i1 %812, i32 %825, i32 %827 | |
%829 = extractelement <4 x i32> %794, i32 2 | |
%830 = select i1 %816, i32 %829, i32 %828 | |
%831 = select i1 %807, i32 %825, i32 %821 | |
%832 = select i1 %812, i32 %829, i32 %831 | |
%833 = extractelement <4 x i32> %794, i32 3 | |
%834 = select i1 %816, i32 %833, i32 %832 | |
%835 = select i1 %807, i32 %829, i32 %825 | |
%836 = select i1 %812, i32 %833, i32 %835 | |
%837 = extractelement <4 x i32> %799, i32 0 | |
%838 = select i1 %816, i32 %837, i32 %836 | |
%839 = select i1 %807, i32 %833, i32 %829 | |
%840 = select i1 %812, i32 %837, i32 %839 | |
%841 = extractelement <4 x i32> %799, i32 1 | |
%842 = select i1 %816, i32 %841, i32 %840 | |
%843 = zext i32 %822 to i64 | |
%844 = shl nuw i64 %843, 32 | |
%845 = zext i32 %818 to i64 | |
%846 = or i64 %844, %845 | |
%847 = shl i32 %784, 3 | |
%848 = zext i32 %847 to i64 | |
%849 = and i64 %848, 24 | |
%850 = ashr i64 %846, %849 | |
%851 = trunc i64 %850 to i32 | |
%852 = zext i32 %826 to i64 | |
%853 = shl nuw i64 %852, 32 | |
%854 = or i64 %853, %843 | |
%855 = ashr i64 %854, %849 | |
%856 = trunc i64 %855 to i32 | |
%857 = zext i32 %830 to i64 | |
%858 = shl nuw i64 %857, 32 | |
%859 = or i64 %858, %852 | |
%860 = ashr i64 %859, %849 | |
%861 = trunc i64 %860 to i32 | |
%862 = zext i32 %834 to i64 | |
%863 = shl nuw i64 %862, 32 | |
%864 = or i64 %863, %857 | |
%865 = ashr i64 %864, %849 | |
%866 = trunc i64 %865 to i32 | |
%867 = zext i32 %838 to i64 | |
%868 = shl nuw i64 %867, 32 | |
%869 = or i64 %868, %862 | |
%870 = ashr i64 %869, %849 | |
%871 = trunc i64 %870 to i32 | |
%872 = zext i32 %842 to i64 | |
%873 = shl nuw i64 %872, 32 | |
%874 = or i64 %873, %867 | |
%875 = ashr i64 %874, %849 | |
%876 = trunc i64 %875 to i32 | |
%877 = shl nsw i32 %783, 3 | |
%878 = or i32 %877, 2 | |
%879 = icmp sgt i32 %878, 1018 | |
%880 = select i1 %879, double 0x3770000000000000, double 1.000000e+00 | |
%881 = fmul double %742, %880 | |
%882 = select i1 %879, i32 136, i32 0 | |
%883 = sub i32 %882, %878 | |
%884 = shl i32 %883, 20 | |
%885 = add i32 %884, 1127219200 | |
%886 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %885, i32 1 | |
%887 = bitcast <2 x i32> %886 to double | |
%888 = insertelement <2 x i32> undef, i32 %851, i32 0 | |
%889 = and i32 %856, 65535 | |
%890 = or i32 %889, %885 | |
%891 = insertelement <2 x i32> %888, i32 %890, i32 1 | |
%892 = bitcast <2 x i32> %891 to double | |
%893 = fsub double %892, %887 | |
%894 = add i32 %884, 1177550848 | |
%895 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %894, i32 1 | |
%896 = bitcast <2 x i32> %895 to double | |
%897 = shl i32 %861, 16 | |
%898 = lshr i32 %856, 16 | |
%899 = or i32 %897, %898 | |
%900 = insertelement <2 x i32> undef, i32 %899, i32 0 | |
%901 = lshr i32 %861, 16 | |
%902 = or i32 %901, %894 | |
%903 = insertelement <2 x i32> %900, i32 %902, i32 1 | |
%904 = bitcast <2 x i32> %903 to double | |
%905 = fsub double %904, %896 | |
%906 = add i32 %884, 1227882496 | |
%907 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %906, i32 1 | |
%908 = bitcast <2 x i32> %907 to double | |
%909 = insertelement <2 x i32> undef, i32 %866, i32 0 | |
%910 = and i32 %871, 65535 | |
%911 = or i32 %910, %906 | |
%912 = insertelement <2 x i32> %909, i32 %911, i32 1 | |
%913 = bitcast <2 x i32> %912 to double | |
%914 = fsub double %913, %908 | |
%915 = add i32 %884, 1278214144 | |
%916 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %915, i32 1 | |
%917 = bitcast <2 x i32> %916 to double | |
%918 = shl i32 %876, 16 | |
%919 = lshr i32 %871, 16 | |
%920 = or i32 %918, %919 | |
%921 = insertelement <2 x i32> undef, i32 %920, i32 0 | |
%922 = lshr i32 %876, 16 | |
%923 = or i32 %922, %915 | |
%924 = insertelement <2 x i32> %921, i32 %923, i32 1 | |
%925 = bitcast <2 x i32> %924 to double | |
%926 = fsub double %925, %917 | |
%927 = fmul double %881, %893 | |
%928 = fsub double -0.000000e+00, %927 | |
%929 = tail call double @llvm.fma.f64(double %893, double %881, double %928) #6 | |
%930 = fmul double %881, %905 | |
%931 = fsub double -0.000000e+00, %930 | |
%932 = tail call double @llvm.fma.f64(double %905, double %881, double %931) #6 | |
%933 = fmul double %881, %914 | |
%934 = fsub double -0.000000e+00, %933 | |
%935 = tail call double @llvm.fma.f64(double %914, double %881, double %934) #6 | |
%936 = fmul double %881, %926 | |
%937 = fsub double -0.000000e+00, %936 | |
%938 = tail call double @llvm.fma.f64(double %926, double %881, double %937) #6 | |
%939 = fadd double %933, %936 | |
%940 = fsub double %939, %936 | |
%941 = fsub double %933, %940 | |
%942 = fadd double %938, %941 | |
%943 = fsub double %942, %938 | |
%944 = fsub double %941, %943 | |
%945 = fadd double %930, %942 | |
%946 = fsub double %945, %942 | |
%947 = fsub double %930, %946 | |
%948 = fadd double %944, %947 | |
%949 = fadd double %935, %948 | |
%950 = fsub double %949, %935 | |
%951 = fsub double %948, %950 | |
%952 = fadd double %927, %949 | |
%953 = fsub double %952, %949 | |
%954 = fsub double %927, %953 | |
%955 = fadd double %951, %954 | |
%956 = fadd double %932, %955 | |
%957 = fadd double %929, %956 | |
%958 = fmul double %939, 9.765625e-04 | |
%959 = tail call double @llvm.floor.f64(double %958) #6 | |
%960 = fsub double %958, %959 | |
%961 = tail call double @fmin(double %960, double 0x3FEFFFFFFFFFFFFF) #7 | |
%962 = tail call double @llvm.fabs.f64(double %958) #3 | |
%963 = fcmp oeq double %962, 0x7FF0000000000000 | |
%964 = select i1 %963, double 0.000000e+00, double %961 | |
%965 = fcmp uno double %958, 0.000000e+00 | |
%966 = select i1 %965, double %958, double %964 | |
%967 = fmul double %966, 1.024000e+03 | |
%968 = fadd double %945, %967 | |
%969 = fcmp olt double %968, 0.000000e+00 | |
%970 = select i1 %969, double 1.024000e+03, double 0.000000e+00 | |
%971 = fadd double %967, %970 | |
%972 = fadd double %945, %971 | |
%973 = tail call double @llvm.floor.f64(double %972) #6 | |
%974 = fsub double %972, %973 | |
%975 = tail call double @fmin(double %974, double 0x3FEFFFFFFFFFFFFF) #7 | |
%976 = tail call double @llvm.fabs.f64(double %972) #3 | |
%977 = fcmp oeq double %976, 0x7FF0000000000000 | |
%978 = select i1 %977, double 0.000000e+00, double %975 | |
%979 = fcmp uno double %972, 0.000000e+00 | |
%980 = select i1 %979, double %972, double %978 | |
%981 = fsub double %972, %980 | |
%982 = fptrunc double %981 to float | |
%983 = fptosi float %982 to i32 | |
%984 = fsub double %971, %981 | |
%985 = fadd double %945, %984 | |
%986 = fsub double %985, %984 | |
%987 = fsub double %945, %986 | |
%988 = fadd double %952, %987 | |
%989 = fsub double %988, %987 | |
%990 = fsub double %952, %989 | |
%991 = fadd double %957, %990 | |
%992 = fcmp oge double %985, 5.000000e-01 | |
%993 = zext i1 %992 to i32 | |
%994 = add nsw i32 %993, %983 | |
%995 = uitofp i1 %992 to float | |
%996 = fpext float %995 to double | |
%997 = fsub double %985, %996 | |
%998 = fadd double %988, %997 | |
%999 = fsub double %998, %997 | |
%1000 = fsub double %988, %999 | |
%1001 = fadd double %991, %1000 | |
%1002 = fmul double %998, 0x3FF921FB54442D18 | |
%1003 = fsub double -0.000000e+00, %1002 | |
%1004 = tail call double @llvm.fma.f64(double %998, double 0x3FF921FB54442D18, double %1003) #6 | |
%1005 = tail call double @llvm.fma.f64(double %998, double 0x3C91A62633145C06, double %1004) #6 | |
%1006 = tail call double @llvm.fma.f64(double %1001, double 0x3FF921FB54442D18, double %1005) #6 | |
%1007 = fadd double %1002, %1006 | |
%1008 = fsub double %1007, %1002 | |
%1009 = fsub double %1006, %1008 | |
br label %1010 | |
; <label>:1010: ; preds = %775, %744 | |
%1011 = phi i32 [ %774, %744 ], [ %994, %775 ] | |
%1012 = phi double [ %769, %744 ], [ %1007, %775 ] | |
%1013 = phi double [ %772, %744 ], [ %1009, %775 ] | |
%1014 = and i32 %1011, 2 | |
%1015 = fmul double %1012, %1012 | |
%1016 = fmul double %1012, %1015 | |
%1017 = fmul double %1015, 5.000000e-01 | |
%1018 = fsub double 1.000000e+00, %1017 | |
%1019 = tail call double @llvm.fma.f64(double 0x3DE5E0B2F9A43BB8, double %1015, double 0xBE5AE600B42FDFA7) #6 | |
%1020 = tail call double @llvm.fma.f64(double %1019, double %1015, double 0x3EC71DE3796CDE01) #6 | |
%1021 = tail call double @llvm.fma.f64(double %1020, double %1015, double 0xBF2A01A019E83E5C) #6 | |
%1022 = tail call double @llvm.fma.f64(double %1021, double %1015, double 0x3F81111111110BB3) #6 | |
%1023 = tail call double @llvm.fma.f64(double 0xBDA907DB46CC5E42, double %1015, double 0x3E21EEB69037AB78) #6 | |
%1024 = tail call double @llvm.fma.f64(double %1023, double %1015, double 0xBE927E4FA17F65F6) #6 | |
%1025 = tail call double @llvm.fma.f64(double %1024, double %1015, double 0x3EFA01A019F4EC90) #6 | |
%1026 = tail call double @llvm.fma.f64(double %1025, double %1015, double 0xBF56C16C16C16967) #6 | |
%1027 = tail call double @llvm.fma.f64(double %1026, double %1015, double 0x3FA5555555555555) #6 | |
%1028 = fmul double %1015, %1015 | |
%1029 = fsub double 1.000000e+00, %1018 | |
%1030 = fsub double %1029, %1017 | |
%1031 = tail call double @llvm.fma.f64(double %1012, double %1013, double %1030) #6 | |
%1032 = tail call double @llvm.fma.f64(double %1027, double %1028, double %1031) #6 | |
%1033 = fadd double %1018, %1032 | |
%1034 = fsub double -0.000000e+00, %1016 | |
%1035 = fmul double %1013, 5.000000e-01 | |
%1036 = tail call double @llvm.fma.f64(double %1034, double %1022, double %1035) #6 | |
%1037 = fsub double -0.000000e+00, %1013 | |
%1038 = tail call double @llvm.fma.f64(double %1036, double %1015, double %1037) #6 | |
%1039 = tail call double @llvm.fma.f64(double %1034, double 0xBFC5555555555555, double %1038) #6 | |
%1040 = fsub double %1012, %1039 | |
%1041 = fsub double -0.000000e+00, %1040 | |
%1042 = and i32 %1011, 1 | |
%1043 = icmp ne i32 %1042, 0 | |
%1044 = select i1 %1043, double %1041, double %1033 | |
%1045 = bitcast double %1044 to <2 x i32> | |
%1046 = icmp ugt i32 %1014, 1 | |
%1047 = zext i1 %1046 to i32 | |
%1048 = shl nuw i32 %1047, 31 | |
%1049 = extractelement <2 x i32> %1045, i32 1 | |
%1050 = xor i32 %1049, %1048 | |
%1051 = insertelement <2 x i32> %1045, i32 %1050, i32 1 | |
%1052 = fcmp uno double %742, 0.000000e+00 | |
%1053 = fcmp oeq double %742, 0x7FF0000000000000 | |
%1054 = or i1 %1053, %1052 | |
%1055 = bitcast <2 x i32> %1051 to double | |
%1056 = select i1 %1054, double 0x7FF8000000000000, double %1055 | |
%1057 = insertelement <4 x double> undef, double %1056, i32 0 | |
%1058 = extractelement <4 x double> %740, i32 1 | |
%1059 = tail call double @llvm.fabs.f64(double %1058) #6 | |
%1060 = fcmp olt double %1059, 0x42E0000000000000 | |
br i1 %1060, label %1061, label %1092 | |
; <label>:1061: ; preds = %1010 | |
%1062 = tail call double @llvm.fma.f64(double %1059, double 0x3FE45F306DC9C883, double 5.000000e-01) #6 | |
%1063 = tail call double @llvm.trunc.f64(double %1062) #6 | |
%1064 = fmul double %1063, 0xBFF921FB54442D18 | |
%1065 = fsub double -0.000000e+00, %1064 | |
%1066 = tail call double @llvm.fma.f64(double 0xBFF921FB54442D18, double %1063, double %1065) #6 | |
%1067 = fmul double %1063, 0xBC91A62633145C06 | |
%1068 = fsub double -0.000000e+00, %1067 | |
%1069 = tail call double @llvm.fma.f64(double 0xBC91A62633145C06, double %1063, double %1068) #6 | |
%1070 = fmul double %1063, 0xB94C1CD129024E08 | |
%1071 = fsub double -0.000000e+00, %1070 | |
%1072 = tail call double @llvm.fma.f64(double 0xB94C1CD129024E08, double %1063, double %1071) #6 | |
%1073 = fadd double %1067, %1066 | |
%1074 = fsub double %1073, %1066 | |
%1075 = fsub double %1067, %1074 | |
%1076 = fadd double %1070, %1075 | |
%1077 = fadd double %1069, %1076 | |
%1078 = fadd double %1072, %1077 | |
%1079 = fadd double %1064, %1073 | |
%1080 = fsub double %1079, %1064 | |
%1081 = fsub double %1073, %1080 | |
%1082 = fadd double %1081, %1078 | |
%1083 = fsub double %1082, %1081 | |
%1084 = fsub double %1078, %1083 | |
%1085 = fadd double %1059, %1079 | |
%1086 = fadd double %1085, %1082 | |
%1087 = fsub double %1086, %1085 | |
%1088 = fsub double %1082, %1087 | |
%1089 = fadd double %1084, %1088 | |
%1090 = fptosi double %1063 to i64 | |
%1091 = trunc i64 %1090 to i32 | |
br label %1327 | |
; <label>:1092: ; preds = %1010 | |
%1093 = bitcast double %1059 to i64 | |
%1094 = lshr i64 %1093, 52 | |
%1095 = trunc i64 %1094 to i32 | |
%1096 = add nsw i32 %1095, -1023 | |
%1097 = ashr i32 %1096, 3 | |
%1098 = add nsw i32 %1097, 17 | |
%1099 = icmp slt i32 %1098, 23 | |
%1100 = select i1 %1099, i32 23, i32 %1098 | |
%1101 = sub nsw i32 150, %1100 | |
%1102 = and i32 %1101, -16 | |
%1103 = sext i32 %1102 to i64 | |
%1104 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %1103 | |
%1105 = bitcast i8 addrspace(2)* %1104 to <4 x i32> addrspace(2)* | |
%1106 = load <4 x i32>, <4 x i32> addrspace(2)* %1105, align 16, !tbaa !7 | |
%1107 = add nsw i32 %1102, 16 | |
%1108 = sext i32 %1107 to i64 | |
%1109 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %1108 | |
%1110 = bitcast i8 addrspace(2)* %1109 to <4 x i32> addrspace(2)* | |
%1111 = load <4 x i32>, <4 x i32> addrspace(2)* %1110, align 16, !tbaa !7 | |
%1112 = add nsw i32 %1102, 32 | |
%1113 = sext i32 %1112 to i64 | |
%1114 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %1113 | |
%1115 = bitcast i8 addrspace(2)* %1114 to <4 x i32> addrspace(2)* | |
%1116 = load <4 x i32>, <4 x i32> addrspace(2)* %1115, align 16, !tbaa !7 | |
%1117 = lshr i32 %1101, 2 | |
%1118 = and i32 %1117, 3 | |
%1119 = insertelement <4 x i32> undef, i32 %1118, i32 0 | |
%1120 = shufflevector <4 x i32> %1119, <4 x i32> undef, <4 x i32> zeroinitializer | |
%1121 = icmp eq <4 x i32> %1120, <i32 0, i32 1, i32 2, i32 3> | |
%1122 = sext <4 x i1> %1121 to <4 x i32> | |
%1123 = extractelement <4 x i32> %1122, i32 1 | |
%1124 = icmp ne i32 %1123, 0 | |
%1125 = extractelement <4 x i32> %1106, i32 1 | |
%1126 = extractelement <4 x i32> %1106, i32 0 | |
%1127 = select i1 %1124, i32 %1125, i32 %1126 | |
%1128 = extractelement <4 x i32> %1122, i32 2 | |
%1129 = icmp ne i32 %1128, 0 | |
%1130 = extractelement <4 x i32> %1106, i32 2 | |
%1131 = select i1 %1129, i32 %1130, i32 %1127 | |
%1132 = extractelement <4 x i32> %1122, i32 3 | |
%1133 = icmp ne i32 %1132, 0 | |
%1134 = extractelement <4 x i32> %1106, i32 3 | |
%1135 = select i1 %1133, i32 %1134, i32 %1131 | |
%1136 = select i1 %1124, i32 %1130, i32 %1125 | |
%1137 = select i1 %1129, i32 %1134, i32 %1136 | |
%1138 = extractelement <4 x i32> %1111, i32 0 | |
%1139 = select i1 %1133, i32 %1138, i32 %1137 | |
%1140 = select i1 %1124, i32 %1134, i32 %1130 | |
%1141 = select i1 %1129, i32 %1138, i32 %1140 | |
%1142 = extractelement <4 x i32> %1111, i32 1 | |
%1143 = select i1 %1133, i32 %1142, i32 %1141 | |
%1144 = select i1 %1124, i32 %1138, i32 %1134 | |
%1145 = select i1 %1129, i32 %1142, i32 %1144 | |
%1146 = extractelement <4 x i32> %1111, i32 2 | |
%1147 = select i1 %1133, i32 %1146, i32 %1145 | |
%1148 = select i1 %1124, i32 %1142, i32 %1138 | |
%1149 = select i1 %1129, i32 %1146, i32 %1148 | |
%1150 = extractelement <4 x i32> %1111, i32 3 | |
%1151 = select i1 %1133, i32 %1150, i32 %1149 | |
%1152 = select i1 %1124, i32 %1146, i32 %1142 | |
%1153 = select i1 %1129, i32 %1150, i32 %1152 | |
%1154 = extractelement <4 x i32> %1116, i32 0 | |
%1155 = select i1 %1133, i32 %1154, i32 %1153 | |
%1156 = select i1 %1124, i32 %1150, i32 %1146 | |
%1157 = select i1 %1129, i32 %1154, i32 %1156 | |
%1158 = extractelement <4 x i32> %1116, i32 1 | |
%1159 = select i1 %1133, i32 %1158, i32 %1157 | |
%1160 = zext i32 %1139 to i64 | |
%1161 = shl nuw i64 %1160, 32 | |
%1162 = zext i32 %1135 to i64 | |
%1163 = or i64 %1161, %1162 | |
%1164 = shl i32 %1101, 3 | |
%1165 = zext i32 %1164 to i64 | |
%1166 = and i64 %1165, 24 | |
%1167 = ashr i64 %1163, %1166 | |
%1168 = trunc i64 %1167 to i32 | |
%1169 = zext i32 %1143 to i64 | |
%1170 = shl nuw i64 %1169, 32 | |
%1171 = or i64 %1170, %1160 | |
%1172 = ashr i64 %1171, %1166 | |
%1173 = trunc i64 %1172 to i32 | |
%1174 = zext i32 %1147 to i64 | |
%1175 = shl nuw i64 %1174, 32 | |
%1176 = or i64 %1175, %1169 | |
%1177 = ashr i64 %1176, %1166 | |
%1178 = trunc i64 %1177 to i32 | |
%1179 = zext i32 %1151 to i64 | |
%1180 = shl nuw i64 %1179, 32 | |
%1181 = or i64 %1180, %1174 | |
%1182 = ashr i64 %1181, %1166 | |
%1183 = trunc i64 %1182 to i32 | |
%1184 = zext i32 %1155 to i64 | |
%1185 = shl nuw i64 %1184, 32 | |
%1186 = or i64 %1185, %1179 | |
%1187 = ashr i64 %1186, %1166 | |
%1188 = trunc i64 %1187 to i32 | |
%1189 = zext i32 %1159 to i64 | |
%1190 = shl nuw i64 %1189, 32 | |
%1191 = or i64 %1190, %1184 | |
%1192 = ashr i64 %1191, %1166 | |
%1193 = trunc i64 %1192 to i32 | |
%1194 = shl nsw i32 %1100, 3 | |
%1195 = or i32 %1194, 2 | |
%1196 = icmp sgt i32 %1195, 1018 | |
%1197 = select i1 %1196, double 0x3770000000000000, double 1.000000e+00 | |
%1198 = fmul double %1059, %1197 | |
%1199 = select i1 %1196, i32 136, i32 0 | |
%1200 = sub i32 %1199, %1195 | |
%1201 = shl i32 %1200, 20 | |
%1202 = add i32 %1201, 1127219200 | |
%1203 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %1202, i32 1 | |
%1204 = bitcast <2 x i32> %1203 to double | |
%1205 = insertelement <2 x i32> undef, i32 %1168, i32 0 | |
%1206 = and i32 %1173, 65535 | |
%1207 = or i32 %1206, %1202 | |
%1208 = insertelement <2 x i32> %1205, i32 %1207, i32 1 | |
%1209 = bitcast <2 x i32> %1208 to double | |
%1210 = fsub double %1209, %1204 | |
%1211 = add i32 %1201, 1177550848 | |
%1212 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %1211, i32 1 | |
%1213 = bitcast <2 x i32> %1212 to double | |
%1214 = shl i32 %1178, 16 | |
%1215 = lshr i32 %1173, 16 | |
%1216 = or i32 %1214, %1215 | |
%1217 = insertelement <2 x i32> undef, i32 %1216, i32 0 | |
%1218 = lshr i32 %1178, 16 | |
%1219 = or i32 %1218, %1211 | |
%1220 = insertelement <2 x i32> %1217, i32 %1219, i32 1 | |
%1221 = bitcast <2 x i32> %1220 to double | |
%1222 = fsub double %1221, %1213 | |
%1223 = add i32 %1201, 1227882496 | |
%1224 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %1223, i32 1 | |
%1225 = bitcast <2 x i32> %1224 to double | |
%1226 = insertelement <2 x i32> undef, i32 %1183, i32 0 | |
%1227 = and i32 %1188, 65535 | |
%1228 = or i32 %1227, %1223 | |
%1229 = insertelement <2 x i32> %1226, i32 %1228, i32 1 | |
%1230 = bitcast <2 x i32> %1229 to double | |
%1231 = fsub double %1230, %1225 | |
%1232 = add i32 %1201, 1278214144 | |
%1233 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %1232, i32 1 | |
%1234 = bitcast <2 x i32> %1233 to double | |
%1235 = shl i32 %1193, 16 | |
%1236 = lshr i32 %1188, 16 | |
%1237 = or i32 %1235, %1236 | |
%1238 = insertelement <2 x i32> undef, i32 %1237, i32 0 | |
%1239 = lshr i32 %1193, 16 | |
%1240 = or i32 %1239, %1232 | |
%1241 = insertelement <2 x i32> %1238, i32 %1240, i32 1 | |
%1242 = bitcast <2 x i32> %1241 to double | |
%1243 = fsub double %1242, %1234 | |
%1244 = fmul double %1198, %1210 | |
%1245 = fsub double -0.000000e+00, %1244 | |
%1246 = tail call double @llvm.fma.f64(double %1210, double %1198, double %1245) #6 | |
%1247 = fmul double %1198, %1222 | |
%1248 = fsub double -0.000000e+00, %1247 | |
%1249 = tail call double @llvm.fma.f64(double %1222, double %1198, double %1248) #6 | |
%1250 = fmul double %1198, %1231 | |
%1251 = fsub double -0.000000e+00, %1250 | |
%1252 = tail call double @llvm.fma.f64(double %1231, double %1198, double %1251) #6 | |
%1253 = fmul double %1198, %1243 | |
%1254 = fsub double -0.000000e+00, %1253 | |
%1255 = tail call double @llvm.fma.f64(double %1243, double %1198, double %1254) #6 | |
%1256 = fadd double %1250, %1253 | |
%1257 = fsub double %1256, %1253 | |
%1258 = fsub double %1250, %1257 | |
%1259 = fadd double %1255, %1258 | |
%1260 = fsub double %1259, %1255 | |
%1261 = fsub double %1258, %1260 | |
%1262 = fadd double %1247, %1259 | |
%1263 = fsub double %1262, %1259 | |
%1264 = fsub double %1247, %1263 | |
%1265 = fadd double %1261, %1264 | |
%1266 = fadd double %1252, %1265 | |
%1267 = fsub double %1266, %1252 | |
%1268 = fsub double %1265, %1267 | |
%1269 = fadd double %1244, %1266 | |
%1270 = fsub double %1269, %1266 | |
%1271 = fsub double %1244, %1270 | |
%1272 = fadd double %1268, %1271 | |
%1273 = fadd double %1249, %1272 | |
%1274 = fadd double %1246, %1273 | |
%1275 = fmul double %1256, 9.765625e-04 | |
%1276 = tail call double @llvm.floor.f64(double %1275) #6 | |
%1277 = fsub double %1275, %1276 | |
%1278 = tail call double @fmin(double %1277, double 0x3FEFFFFFFFFFFFFF) #7 | |
%1279 = tail call double @llvm.fabs.f64(double %1275) #3 | |
%1280 = fcmp oeq double %1279, 0x7FF0000000000000 | |
%1281 = select i1 %1280, double 0.000000e+00, double %1278 | |
%1282 = fcmp uno double %1275, 0.000000e+00 | |
%1283 = select i1 %1282, double %1275, double %1281 | |
%1284 = fmul double %1283, 1.024000e+03 | |
%1285 = fadd double %1262, %1284 | |
%1286 = fcmp olt double %1285, 0.000000e+00 | |
%1287 = select i1 %1286, double 1.024000e+03, double 0.000000e+00 | |
%1288 = fadd double %1284, %1287 | |
%1289 = fadd double %1262, %1288 | |
%1290 = tail call double @llvm.floor.f64(double %1289) #6 | |
%1291 = fsub double %1289, %1290 | |
%1292 = tail call double @fmin(double %1291, double 0x3FEFFFFFFFFFFFFF) #7 | |
%1293 = tail call double @llvm.fabs.f64(double %1289) #3 | |
%1294 = fcmp oeq double %1293, 0x7FF0000000000000 | |
%1295 = select i1 %1294, double 0.000000e+00, double %1292 | |
%1296 = fcmp uno double %1289, 0.000000e+00 | |
%1297 = select i1 %1296, double %1289, double %1295 | |
%1298 = fsub double %1289, %1297 | |
%1299 = fptrunc double %1298 to float | |
%1300 = fptosi float %1299 to i32 | |
%1301 = fsub double %1288, %1298 | |
%1302 = fadd double %1262, %1301 | |
%1303 = fsub double %1302, %1301 | |
%1304 = fsub double %1262, %1303 | |
%1305 = fadd double %1269, %1304 | |
%1306 = fsub double %1305, %1304 | |
%1307 = fsub double %1269, %1306 | |
%1308 = fadd double %1274, %1307 | |
%1309 = fcmp oge double %1302, 5.000000e-01 | |
%1310 = zext i1 %1309 to i32 | |
%1311 = add nsw i32 %1310, %1300 | |
%1312 = uitofp i1 %1309 to float | |
%1313 = fpext float %1312 to double | |
%1314 = fsub double %1302, %1313 | |
%1315 = fadd double %1305, %1314 | |
%1316 = fsub double %1315, %1314 | |
%1317 = fsub double %1305, %1316 | |
%1318 = fadd double %1308, %1317 | |
%1319 = fmul double %1315, 0x3FF921FB54442D18 | |
%1320 = fsub double -0.000000e+00, %1319 | |
%1321 = tail call double @llvm.fma.f64(double %1315, double 0x3FF921FB54442D18, double %1320) #6 | |
%1322 = tail call double @llvm.fma.f64(double %1315, double 0x3C91A62633145C06, double %1321) #6 | |
%1323 = tail call double @llvm.fma.f64(double %1318, double 0x3FF921FB54442D18, double %1322) #6 | |
%1324 = fadd double %1319, %1323 | |
%1325 = fsub double %1324, %1319 | |
%1326 = fsub double %1323, %1325 | |
br label %1327 | |
; <label>:1327: ; preds = %1092, %1061 | |
%1328 = phi i32 [ %1091, %1061 ], [ %1311, %1092 ] | |
%1329 = phi double [ %1086, %1061 ], [ %1324, %1092 ] | |
%1330 = phi double [ %1089, %1061 ], [ %1326, %1092 ] | |
%1331 = and i32 %1328, 2 | |
%1332 = fmul double %1329, %1329 | |
%1333 = fmul double %1329, %1332 | |
%1334 = fmul double %1332, 5.000000e-01 | |
%1335 = fsub double 1.000000e+00, %1334 | |
%1336 = tail call double @llvm.fma.f64(double 0x3DE5E0B2F9A43BB8, double %1332, double 0xBE5AE600B42FDFA7) #6 | |
%1337 = tail call double @llvm.fma.f64(double %1336, double %1332, double 0x3EC71DE3796CDE01) #6 | |
%1338 = tail call double @llvm.fma.f64(double %1337, double %1332, double 0xBF2A01A019E83E5C) #6 | |
%1339 = tail call double @llvm.fma.f64(double %1338, double %1332, double 0x3F81111111110BB3) #6 | |
%1340 = tail call double @llvm.fma.f64(double 0xBDA907DB46CC5E42, double %1332, double 0x3E21EEB69037AB78) #6 | |
%1341 = tail call double @llvm.fma.f64(double %1340, double %1332, double 0xBE927E4FA17F65F6) #6 | |
%1342 = tail call double @llvm.fma.f64(double %1341, double %1332, double 0x3EFA01A019F4EC90) #6 | |
%1343 = tail call double @llvm.fma.f64(double %1342, double %1332, double 0xBF56C16C16C16967) #6 | |
%1344 = tail call double @llvm.fma.f64(double %1343, double %1332, double 0x3FA5555555555555) #6 | |
%1345 = fmul double %1332, %1332 | |
%1346 = fsub double 1.000000e+00, %1335 | |
%1347 = fsub double %1346, %1334 | |
%1348 = tail call double @llvm.fma.f64(double %1329, double %1330, double %1347) #6 | |
%1349 = tail call double @llvm.fma.f64(double %1344, double %1345, double %1348) #6 | |
%1350 = fadd double %1335, %1349 | |
%1351 = fsub double -0.000000e+00, %1333 | |
%1352 = fmul double %1330, 5.000000e-01 | |
%1353 = tail call double @llvm.fma.f64(double %1351, double %1339, double %1352) #6 | |
%1354 = fsub double -0.000000e+00, %1330 | |
%1355 = tail call double @llvm.fma.f64(double %1353, double %1332, double %1354) #6 | |
%1356 = tail call double @llvm.fma.f64(double %1351, double 0xBFC5555555555555, double %1355) #6 | |
%1357 = fsub double %1329, %1356 | |
%1358 = fsub double -0.000000e+00, %1357 | |
%1359 = and i32 %1328, 1 | |
%1360 = icmp ne i32 %1359, 0 | |
%1361 = select i1 %1360, double %1358, double %1350 | |
%1362 = bitcast double %1361 to <2 x i32> | |
%1363 = icmp ugt i32 %1331, 1 | |
%1364 = zext i1 %1363 to i32 | |
%1365 = shl nuw i32 %1364, 31 | |
%1366 = extractelement <2 x i32> %1362, i32 1 | |
%1367 = xor i32 %1366, %1365 | |
%1368 = insertelement <2 x i32> %1362, i32 %1367, i32 1 | |
%1369 = fcmp uno double %1059, 0.000000e+00 | |
%1370 = fcmp oeq double %1059, 0x7FF0000000000000 | |
%1371 = or i1 %1370, %1369 | |
%1372 = bitcast <2 x i32> %1368 to double | |
%1373 = select i1 %1371, double 0x7FF8000000000000, double %1372 | |
%1374 = insertelement <4 x double> %1057, double %1373, i32 1 | |
%1375 = extractelement <4 x double> %740, i32 2 | |
%1376 = tail call double @llvm.fabs.f64(double %1375) #6 | |
%1377 = fcmp olt double %1376, 0x42E0000000000000 | |
br i1 %1377, label %1378, label %1409 | |
; <label>:1378: ; preds = %1327 | |
%1379 = tail call double @llvm.fma.f64(double %1376, double 0x3FE45F306DC9C883, double 5.000000e-01) #6 | |
%1380 = tail call double @llvm.trunc.f64(double %1379) #6 | |
%1381 = fmul double %1380, 0xBFF921FB54442D18 | |
%1382 = fsub double -0.000000e+00, %1381 | |
%1383 = tail call double @llvm.fma.f64(double 0xBFF921FB54442D18, double %1380, double %1382) #6 | |
%1384 = fmul double %1380, 0xBC91A62633145C06 | |
%1385 = fsub double -0.000000e+00, %1384 | |
%1386 = tail call double @llvm.fma.f64(double 0xBC91A62633145C06, double %1380, double %1385) #6 | |
%1387 = fmul double %1380, 0xB94C1CD129024E08 | |
%1388 = fsub double -0.000000e+00, %1387 | |
%1389 = tail call double @llvm.fma.f64(double 0xB94C1CD129024E08, double %1380, double %1388) #6 | |
%1390 = fadd double %1384, %1383 | |
%1391 = fsub double %1390, %1383 | |
%1392 = fsub double %1384, %1391 | |
%1393 = fadd double %1387, %1392 | |
%1394 = fadd double %1386, %1393 | |
%1395 = fadd double %1389, %1394 | |
%1396 = fadd double %1381, %1390 | |
%1397 = fsub double %1396, %1381 | |
%1398 = fsub double %1390, %1397 | |
%1399 = fadd double %1398, %1395 | |
%1400 = fsub double %1399, %1398 | |
%1401 = fsub double %1395, %1400 | |
%1402 = fadd double %1376, %1396 | |
%1403 = fadd double %1402, %1399 | |
%1404 = fsub double %1403, %1402 | |
%1405 = fsub double %1399, %1404 | |
%1406 = fadd double %1401, %1405 | |
%1407 = fptosi double %1380 to i64 | |
%1408 = trunc i64 %1407 to i32 | |
br label %1644 | |
; <label>:1409: ; preds = %1327 | |
%1410 = bitcast double %1376 to i64 | |
%1411 = lshr i64 %1410, 52 | |
%1412 = trunc i64 %1411 to i32 | |
%1413 = add nsw i32 %1412, -1023 | |
%1414 = ashr i32 %1413, 3 | |
%1415 = add nsw i32 %1414, 17 | |
%1416 = icmp slt i32 %1415, 23 | |
%1417 = select i1 %1416, i32 23, i32 %1415 | |
%1418 = sub nsw i32 150, %1417 | |
%1419 = and i32 %1418, -16 | |
%1420 = sext i32 %1419 to i64 | |
%1421 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %1420 | |
%1422 = bitcast i8 addrspace(2)* %1421 to <4 x i32> addrspace(2)* | |
%1423 = load <4 x i32>, <4 x i32> addrspace(2)* %1422, align 16, !tbaa !7 | |
%1424 = add nsw i32 %1419, 16 | |
%1425 = sext i32 %1424 to i64 | |
%1426 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %1425 | |
%1427 = bitcast i8 addrspace(2)* %1426 to <4 x i32> addrspace(2)* | |
%1428 = load <4 x i32>, <4 x i32> addrspace(2)* %1427, align 16, !tbaa !7 | |
%1429 = add nsw i32 %1419, 32 | |
%1430 = sext i32 %1429 to i64 | |
%1431 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %1430 | |
%1432 = bitcast i8 addrspace(2)* %1431 to <4 x i32> addrspace(2)* | |
%1433 = load <4 x i32>, <4 x i32> addrspace(2)* %1432, align 16, !tbaa !7 | |
%1434 = lshr i32 %1418, 2 | |
%1435 = and i32 %1434, 3 | |
%1436 = insertelement <4 x i32> undef, i32 %1435, i32 0 | |
%1437 = shufflevector <4 x i32> %1436, <4 x i32> undef, <4 x i32> zeroinitializer | |
%1438 = icmp eq <4 x i32> %1437, <i32 0, i32 1, i32 2, i32 3> | |
%1439 = sext <4 x i1> %1438 to <4 x i32> | |
%1440 = extractelement <4 x i32> %1439, i32 1 | |
%1441 = icmp ne i32 %1440, 0 | |
%1442 = extractelement <4 x i32> %1423, i32 1 | |
%1443 = extractelement <4 x i32> %1423, i32 0 | |
%1444 = select i1 %1441, i32 %1442, i32 %1443 | |
%1445 = extractelement <4 x i32> %1439, i32 2 | |
%1446 = icmp ne i32 %1445, 0 | |
%1447 = extractelement <4 x i32> %1423, i32 2 | |
%1448 = select i1 %1446, i32 %1447, i32 %1444 | |
%1449 = extractelement <4 x i32> %1439, i32 3 | |
%1450 = icmp ne i32 %1449, 0 | |
%1451 = extractelement <4 x i32> %1423, i32 3 | |
%1452 = select i1 %1450, i32 %1451, i32 %1448 | |
%1453 = select i1 %1441, i32 %1447, i32 %1442 | |
%1454 = select i1 %1446, i32 %1451, i32 %1453 | |
%1455 = extractelement <4 x i32> %1428, i32 0 | |
%1456 = select i1 %1450, i32 %1455, i32 %1454 | |
%1457 = select i1 %1441, i32 %1451, i32 %1447 | |
%1458 = select i1 %1446, i32 %1455, i32 %1457 | |
%1459 = extractelement <4 x i32> %1428, i32 1 | |
%1460 = select i1 %1450, i32 %1459, i32 %1458 | |
%1461 = select i1 %1441, i32 %1455, i32 %1451 | |
%1462 = select i1 %1446, i32 %1459, i32 %1461 | |
%1463 = extractelement <4 x i32> %1428, i32 2 | |
%1464 = select i1 %1450, i32 %1463, i32 %1462 | |
%1465 = select i1 %1441, i32 %1459, i32 %1455 | |
%1466 = select i1 %1446, i32 %1463, i32 %1465 | |
%1467 = extractelement <4 x i32> %1428, i32 3 | |
%1468 = select i1 %1450, i32 %1467, i32 %1466 | |
%1469 = select i1 %1441, i32 %1463, i32 %1459 | |
%1470 = select i1 %1446, i32 %1467, i32 %1469 | |
%1471 = extractelement <4 x i32> %1433, i32 0 | |
%1472 = select i1 %1450, i32 %1471, i32 %1470 | |
%1473 = select i1 %1441, i32 %1467, i32 %1463 | |
%1474 = select i1 %1446, i32 %1471, i32 %1473 | |
%1475 = extractelement <4 x i32> %1433, i32 1 | |
%1476 = select i1 %1450, i32 %1475, i32 %1474 | |
%1477 = zext i32 %1456 to i64 | |
%1478 = shl nuw i64 %1477, 32 | |
%1479 = zext i32 %1452 to i64 | |
%1480 = or i64 %1478, %1479 | |
%1481 = shl i32 %1418, 3 | |
%1482 = zext i32 %1481 to i64 | |
%1483 = and i64 %1482, 24 | |
%1484 = ashr i64 %1480, %1483 | |
%1485 = trunc i64 %1484 to i32 | |
%1486 = zext i32 %1460 to i64 | |
%1487 = shl nuw i64 %1486, 32 | |
%1488 = or i64 %1487, %1477 | |
%1489 = ashr i64 %1488, %1483 | |
%1490 = trunc i64 %1489 to i32 | |
%1491 = zext i32 %1464 to i64 | |
%1492 = shl nuw i64 %1491, 32 | |
%1493 = or i64 %1492, %1486 | |
%1494 = ashr i64 %1493, %1483 | |
%1495 = trunc i64 %1494 to i32 | |
%1496 = zext i32 %1468 to i64 | |
%1497 = shl nuw i64 %1496, 32 | |
%1498 = or i64 %1497, %1491 | |
%1499 = ashr i64 %1498, %1483 | |
%1500 = trunc i64 %1499 to i32 | |
%1501 = zext i32 %1472 to i64 | |
%1502 = shl nuw i64 %1501, 32 | |
%1503 = or i64 %1502, %1496 | |
%1504 = ashr i64 %1503, %1483 | |
%1505 = trunc i64 %1504 to i32 | |
%1506 = zext i32 %1476 to i64 | |
%1507 = shl nuw i64 %1506, 32 | |
%1508 = or i64 %1507, %1501 | |
%1509 = ashr i64 %1508, %1483 | |
%1510 = trunc i64 %1509 to i32 | |
%1511 = shl nsw i32 %1417, 3 | |
%1512 = or i32 %1511, 2 | |
%1513 = icmp sgt i32 %1512, 1018 | |
%1514 = select i1 %1513, double 0x3770000000000000, double 1.000000e+00 | |
%1515 = fmul double %1376, %1514 | |
%1516 = select i1 %1513, i32 136, i32 0 | |
%1517 = sub i32 %1516, %1512 | |
%1518 = shl i32 %1517, 20 | |
%1519 = add i32 %1518, 1127219200 | |
%1520 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %1519, i32 1 | |
%1521 = bitcast <2 x i32> %1520 to double | |
%1522 = insertelement <2 x i32> undef, i32 %1485, i32 0 | |
%1523 = and i32 %1490, 65535 | |
%1524 = or i32 %1523, %1519 | |
%1525 = insertelement <2 x i32> %1522, i32 %1524, i32 1 | |
%1526 = bitcast <2 x i32> %1525 to double | |
%1527 = fsub double %1526, %1521 | |
%1528 = add i32 %1518, 1177550848 | |
%1529 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %1528, i32 1 | |
%1530 = bitcast <2 x i32> %1529 to double | |
%1531 = shl i32 %1495, 16 | |
%1532 = lshr i32 %1490, 16 | |
%1533 = or i32 %1531, %1532 | |
%1534 = insertelement <2 x i32> undef, i32 %1533, i32 0 | |
%1535 = lshr i32 %1495, 16 | |
%1536 = or i32 %1535, %1528 | |
%1537 = insertelement <2 x i32> %1534, i32 %1536, i32 1 | |
%1538 = bitcast <2 x i32> %1537 to double | |
%1539 = fsub double %1538, %1530 | |
%1540 = add i32 %1518, 1227882496 | |
%1541 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %1540, i32 1 | |
%1542 = bitcast <2 x i32> %1541 to double | |
%1543 = insertelement <2 x i32> undef, i32 %1500, i32 0 | |
%1544 = and i32 %1505, 65535 | |
%1545 = or i32 %1544, %1540 | |
%1546 = insertelement <2 x i32> %1543, i32 %1545, i32 1 | |
%1547 = bitcast <2 x i32> %1546 to double | |
%1548 = fsub double %1547, %1542 | |
%1549 = add i32 %1518, 1278214144 | |
%1550 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %1549, i32 1 | |
%1551 = bitcast <2 x i32> %1550 to double | |
%1552 = shl i32 %1510, 16 | |
%1553 = lshr i32 %1505, 16 | |
%1554 = or i32 %1552, %1553 | |
%1555 = insertelement <2 x i32> undef, i32 %1554, i32 0 | |
%1556 = lshr i32 %1510, 16 | |
%1557 = or i32 %1556, %1549 | |
%1558 = insertelement <2 x i32> %1555, i32 %1557, i32 1 | |
%1559 = bitcast <2 x i32> %1558 to double | |
%1560 = fsub double %1559, %1551 | |
%1561 = fmul double %1515, %1527 | |
%1562 = fsub double -0.000000e+00, %1561 | |
%1563 = tail call double @llvm.fma.f64(double %1527, double %1515, double %1562) #6 | |
%1564 = fmul double %1515, %1539 | |
%1565 = fsub double -0.000000e+00, %1564 | |
%1566 = tail call double @llvm.fma.f64(double %1539, double %1515, double %1565) #6 | |
%1567 = fmul double %1515, %1548 | |
%1568 = fsub double -0.000000e+00, %1567 | |
%1569 = tail call double @llvm.fma.f64(double %1548, double %1515, double %1568) #6 | |
%1570 = fmul double %1515, %1560 | |
%1571 = fsub double -0.000000e+00, %1570 | |
%1572 = tail call double @llvm.fma.f64(double %1560, double %1515, double %1571) #6 | |
%1573 = fadd double %1567, %1570 | |
%1574 = fsub double %1573, %1570 | |
%1575 = fsub double %1567, %1574 | |
%1576 = fadd double %1572, %1575 | |
%1577 = fsub double %1576, %1572 | |
%1578 = fsub double %1575, %1577 | |
%1579 = fadd double %1564, %1576 | |
%1580 = fsub double %1579, %1576 | |
%1581 = fsub double %1564, %1580 | |
%1582 = fadd double %1578, %1581 | |
%1583 = fadd double %1569, %1582 | |
%1584 = fsub double %1583, %1569 | |
%1585 = fsub double %1582, %1584 | |
%1586 = fadd double %1561, %1583 | |
%1587 = fsub double %1586, %1583 | |
%1588 = fsub double %1561, %1587 | |
%1589 = fadd double %1585, %1588 | |
%1590 = fadd double %1566, %1589 | |
%1591 = fadd double %1563, %1590 | |
%1592 = fmul double %1573, 9.765625e-04 | |
%1593 = tail call double @llvm.floor.f64(double %1592) #6 | |
%1594 = fsub double %1592, %1593 | |
%1595 = tail call double @fmin(double %1594, double 0x3FEFFFFFFFFFFFFF) #7 | |
%1596 = tail call double @llvm.fabs.f64(double %1592) #3 | |
%1597 = fcmp oeq double %1596, 0x7FF0000000000000 | |
%1598 = select i1 %1597, double 0.000000e+00, double %1595 | |
%1599 = fcmp uno double %1592, 0.000000e+00 | |
%1600 = select i1 %1599, double %1592, double %1598 | |
%1601 = fmul double %1600, 1.024000e+03 | |
%1602 = fadd double %1579, %1601 | |
%1603 = fcmp olt double %1602, 0.000000e+00 | |
%1604 = select i1 %1603, double 1.024000e+03, double 0.000000e+00 | |
%1605 = fadd double %1601, %1604 | |
%1606 = fadd double %1579, %1605 | |
%1607 = tail call double @llvm.floor.f64(double %1606) #6 | |
%1608 = fsub double %1606, %1607 | |
%1609 = tail call double @fmin(double %1608, double 0x3FEFFFFFFFFFFFFF) #7 | |
%1610 = tail call double @llvm.fabs.f64(double %1606) #3 | |
%1611 = fcmp oeq double %1610, 0x7FF0000000000000 | |
%1612 = select i1 %1611, double 0.000000e+00, double %1609 | |
%1613 = fcmp uno double %1606, 0.000000e+00 | |
%1614 = select i1 %1613, double %1606, double %1612 | |
%1615 = fsub double %1606, %1614 | |
%1616 = fptrunc double %1615 to float | |
%1617 = fptosi float %1616 to i32 | |
%1618 = fsub double %1605, %1615 | |
%1619 = fadd double %1579, %1618 | |
%1620 = fsub double %1619, %1618 | |
%1621 = fsub double %1579, %1620 | |
%1622 = fadd double %1586, %1621 | |
%1623 = fsub double %1622, %1621 | |
%1624 = fsub double %1586, %1623 | |
%1625 = fadd double %1591, %1624 | |
%1626 = fcmp oge double %1619, 5.000000e-01 | |
%1627 = zext i1 %1626 to i32 | |
%1628 = add nsw i32 %1627, %1617 | |
%1629 = uitofp i1 %1626 to float | |
%1630 = fpext float %1629 to double | |
%1631 = fsub double %1619, %1630 | |
%1632 = fadd double %1622, %1631 | |
%1633 = fsub double %1632, %1631 | |
%1634 = fsub double %1622, %1633 | |
%1635 = fadd double %1625, %1634 | |
%1636 = fmul double %1632, 0x3FF921FB54442D18 | |
%1637 = fsub double -0.000000e+00, %1636 | |
%1638 = tail call double @llvm.fma.f64(double %1632, double 0x3FF921FB54442D18, double %1637) #6 | |
%1639 = tail call double @llvm.fma.f64(double %1632, double 0x3C91A62633145C06, double %1638) #6 | |
%1640 = tail call double @llvm.fma.f64(double %1635, double 0x3FF921FB54442D18, double %1639) #6 | |
%1641 = fadd double %1636, %1640 | |
%1642 = fsub double %1641, %1636 | |
%1643 = fsub double %1640, %1642 | |
br label %1644 | |
; <label>:1644: ; preds = %1409, %1378 | |
%1645 = phi i32 [ %1408, %1378 ], [ %1628, %1409 ] | |
%1646 = phi double [ %1403, %1378 ], [ %1641, %1409 ] | |
%1647 = phi double [ %1406, %1378 ], [ %1643, %1409 ] | |
%1648 = and i32 %1645, 2 | |
%1649 = fmul double %1646, %1646 | |
%1650 = fmul double %1646, %1649 | |
%1651 = fmul double %1649, 5.000000e-01 | |
%1652 = fsub double 1.000000e+00, %1651 | |
%1653 = tail call double @llvm.fma.f64(double 0x3DE5E0B2F9A43BB8, double %1649, double 0xBE5AE600B42FDFA7) #6 | |
%1654 = tail call double @llvm.fma.f64(double %1653, double %1649, double 0x3EC71DE3796CDE01) #6 | |
%1655 = tail call double @llvm.fma.f64(double %1654, double %1649, double 0xBF2A01A019E83E5C) #6 | |
%1656 = tail call double @llvm.fma.f64(double %1655, double %1649, double 0x3F81111111110BB3) #6 | |
%1657 = tail call double @llvm.fma.f64(double 0xBDA907DB46CC5E42, double %1649, double 0x3E21EEB69037AB78) #6 | |
%1658 = tail call double @llvm.fma.f64(double %1657, double %1649, double 0xBE927E4FA17F65F6) #6 | |
%1659 = tail call double @llvm.fma.f64(double %1658, double %1649, double 0x3EFA01A019F4EC90) #6 | |
%1660 = tail call double @llvm.fma.f64(double %1659, double %1649, double 0xBF56C16C16C16967) #6 | |
%1661 = tail call double @llvm.fma.f64(double %1660, double %1649, double 0x3FA5555555555555) #6 | |
%1662 = fmul double %1649, %1649 | |
%1663 = fsub double 1.000000e+00, %1652 | |
%1664 = fsub double %1663, %1651 | |
%1665 = tail call double @llvm.fma.f64(double %1646, double %1647, double %1664) #6 | |
%1666 = tail call double @llvm.fma.f64(double %1661, double %1662, double %1665) #6 | |
%1667 = fadd double %1652, %1666 | |
%1668 = fsub double -0.000000e+00, %1650 | |
%1669 = fmul double %1647, 5.000000e-01 | |
%1670 = tail call double @llvm.fma.f64(double %1668, double %1656, double %1669) #6 | |
%1671 = fsub double -0.000000e+00, %1647 | |
%1672 = tail call double @llvm.fma.f64(double %1670, double %1649, double %1671) #6 | |
%1673 = tail call double @llvm.fma.f64(double %1668, double 0xBFC5555555555555, double %1672) #6 | |
%1674 = fsub double %1646, %1673 | |
%1675 = fsub double -0.000000e+00, %1674 | |
%1676 = and i32 %1645, 1 | |
%1677 = icmp ne i32 %1676, 0 | |
%1678 = select i1 %1677, double %1675, double %1667 | |
%1679 = bitcast double %1678 to <2 x i32> | |
%1680 = icmp ugt i32 %1648, 1 | |
%1681 = zext i1 %1680 to i32 | |
%1682 = shl nuw i32 %1681, 31 | |
%1683 = extractelement <2 x i32> %1679, i32 1 | |
%1684 = xor i32 %1683, %1682 | |
%1685 = insertelement <2 x i32> %1679, i32 %1684, i32 1 | |
%1686 = fcmp uno double %1376, 0.000000e+00 | |
%1687 = fcmp oeq double %1376, 0x7FF0000000000000 | |
%1688 = or i1 %1687, %1686 | |
%1689 = bitcast <2 x i32> %1685 to double | |
%1690 = select i1 %1688, double 0x7FF8000000000000, double %1689 | |
%1691 = insertelement <4 x double> undef, double %1690, i32 0 | |
%1692 = extractelement <4 x double> %740, i32 3 | |
%1693 = tail call double @llvm.fabs.f64(double %1692) #6 | |
%1694 = fcmp olt double %1693, 0x42E0000000000000 | |
br i1 %1694, label %1695, label %1726 | |
; <label>:1695: ; preds = %1644 | |
%1696 = tail call double @llvm.fma.f64(double %1693, double 0x3FE45F306DC9C883, double 5.000000e-01) #6 | |
%1697 = tail call double @llvm.trunc.f64(double %1696) #6 | |
%1698 = fmul double %1697, 0xBFF921FB54442D18 | |
%1699 = fsub double -0.000000e+00, %1698 | |
%1700 = tail call double @llvm.fma.f64(double 0xBFF921FB54442D18, double %1697, double %1699) #6 | |
%1701 = fmul double %1697, 0xBC91A62633145C06 | |
%1702 = fsub double -0.000000e+00, %1701 | |
%1703 = tail call double @llvm.fma.f64(double 0xBC91A62633145C06, double %1697, double %1702) #6 | |
%1704 = fmul double %1697, 0xB94C1CD129024E08 | |
%1705 = fsub double -0.000000e+00, %1704 | |
%1706 = tail call double @llvm.fma.f64(double 0xB94C1CD129024E08, double %1697, double %1705) #6 | |
%1707 = fadd double %1701, %1700 | |
%1708 = fsub double %1707, %1700 | |
%1709 = fsub double %1701, %1708 | |
%1710 = fadd double %1704, %1709 | |
%1711 = fadd double %1703, %1710 | |
%1712 = fadd double %1706, %1711 | |
%1713 = fadd double %1698, %1707 | |
%1714 = fsub double %1713, %1698 | |
%1715 = fsub double %1707, %1714 | |
%1716 = fadd double %1715, %1712 | |
%1717 = fsub double %1716, %1715 | |
%1718 = fsub double %1712, %1717 | |
%1719 = fadd double %1693, %1713 | |
%1720 = fadd double %1719, %1716 | |
%1721 = fsub double %1720, %1719 | |
%1722 = fsub double %1716, %1721 | |
%1723 = fadd double %1718, %1722 | |
%1724 = fptosi double %1697 to i64 | |
%1725 = trunc i64 %1724 to i32 | |
br label %1961 | |
; <label>:1726: ; preds = %1644 | |
%1727 = bitcast double %1693 to i64 | |
%1728 = lshr i64 %1727, 52 | |
%1729 = trunc i64 %1728 to i32 | |
%1730 = add nsw i32 %1729, -1023 | |
%1731 = ashr i32 %1730, 3 | |
%1732 = add nsw i32 %1731, 17 | |
%1733 = icmp slt i32 %1732, 23 | |
%1734 = select i1 %1733, i32 23, i32 %1732 | |
%1735 = sub nsw i32 150, %1734 | |
%1736 = and i32 %1735, -16 | |
%1737 = sext i32 %1736 to i64 | |
%1738 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %1737 | |
%1739 = bitcast i8 addrspace(2)* %1738 to <4 x i32> addrspace(2)* | |
%1740 = load <4 x i32>, <4 x i32> addrspace(2)* %1739, align 16, !tbaa !7 | |
%1741 = add nsw i32 %1736, 16 | |
%1742 = sext i32 %1741 to i64 | |
%1743 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %1742 | |
%1744 = bitcast i8 addrspace(2)* %1743 to <4 x i32> addrspace(2)* | |
%1745 = load <4 x i32>, <4 x i32> addrspace(2)* %1744, align 16, !tbaa !7 | |
%1746 = add nsw i32 %1736, 32 | |
%1747 = sext i32 %1746 to i64 | |
%1748 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %1747 | |
%1749 = bitcast i8 addrspace(2)* %1748 to <4 x i32> addrspace(2)* | |
%1750 = load <4 x i32>, <4 x i32> addrspace(2)* %1749, align 16, !tbaa !7 | |
%1751 = lshr i32 %1735, 2 | |
%1752 = and i32 %1751, 3 | |
%1753 = insertelement <4 x i32> undef, i32 %1752, i32 0 | |
%1754 = shufflevector <4 x i32> %1753, <4 x i32> undef, <4 x i32> zeroinitializer | |
%1755 = icmp eq <4 x i32> %1754, <i32 0, i32 1, i32 2, i32 3> | |
%1756 = sext <4 x i1> %1755 to <4 x i32> | |
%1757 = extractelement <4 x i32> %1756, i32 1 | |
%1758 = icmp ne i32 %1757, 0 | |
%1759 = extractelement <4 x i32> %1740, i32 1 | |
%1760 = extractelement <4 x i32> %1740, i32 0 | |
%1761 = select i1 %1758, i32 %1759, i32 %1760 | |
%1762 = extractelement <4 x i32> %1756, i32 2 | |
%1763 = icmp ne i32 %1762, 0 | |
%1764 = extractelement <4 x i32> %1740, i32 2 | |
%1765 = select i1 %1763, i32 %1764, i32 %1761 | |
%1766 = extractelement <4 x i32> %1756, i32 3 | |
%1767 = icmp ne i32 %1766, 0 | |
%1768 = extractelement <4 x i32> %1740, i32 3 | |
%1769 = select i1 %1767, i32 %1768, i32 %1765 | |
%1770 = select i1 %1758, i32 %1764, i32 %1759 | |
%1771 = select i1 %1763, i32 %1768, i32 %1770 | |
%1772 = extractelement <4 x i32> %1745, i32 0 | |
%1773 = select i1 %1767, i32 %1772, i32 %1771 | |
%1774 = select i1 %1758, i32 %1768, i32 %1764 | |
%1775 = select i1 %1763, i32 %1772, i32 %1774 | |
%1776 = extractelement <4 x i32> %1745, i32 1 | |
%1777 = select i1 %1767, i32 %1776, i32 %1775 | |
%1778 = select i1 %1758, i32 %1772, i32 %1768 | |
%1779 = select i1 %1763, i32 %1776, i32 %1778 | |
%1780 = extractelement <4 x i32> %1745, i32 2 | |
%1781 = select i1 %1767, i32 %1780, i32 %1779 | |
%1782 = select i1 %1758, i32 %1776, i32 %1772 | |
%1783 = select i1 %1763, i32 %1780, i32 %1782 | |
%1784 = extractelement <4 x i32> %1745, i32 3 | |
%1785 = select i1 %1767, i32 %1784, i32 %1783 | |
%1786 = select i1 %1758, i32 %1780, i32 %1776 | |
%1787 = select i1 %1763, i32 %1784, i32 %1786 | |
%1788 = extractelement <4 x i32> %1750, i32 0 | |
%1789 = select i1 %1767, i32 %1788, i32 %1787 | |
%1790 = select i1 %1758, i32 %1784, i32 %1780 | |
%1791 = select i1 %1763, i32 %1788, i32 %1790 | |
%1792 = extractelement <4 x i32> %1750, i32 1 | |
%1793 = select i1 %1767, i32 %1792, i32 %1791 | |
%1794 = zext i32 %1773 to i64 | |
%1795 = shl nuw i64 %1794, 32 | |
%1796 = zext i32 %1769 to i64 | |
%1797 = or i64 %1795, %1796 | |
%1798 = shl i32 %1735, 3 | |
%1799 = zext i32 %1798 to i64 | |
%1800 = and i64 %1799, 24 | |
%1801 = ashr i64 %1797, %1800 | |
%1802 = trunc i64 %1801 to i32 | |
%1803 = zext i32 %1777 to i64 | |
%1804 = shl nuw i64 %1803, 32 | |
%1805 = or i64 %1804, %1794 | |
%1806 = ashr i64 %1805, %1800 | |
%1807 = trunc i64 %1806 to i32 | |
%1808 = zext i32 %1781 to i64 | |
%1809 = shl nuw i64 %1808, 32 | |
%1810 = or i64 %1809, %1803 | |
%1811 = ashr i64 %1810, %1800 | |
%1812 = trunc i64 %1811 to i32 | |
%1813 = zext i32 %1785 to i64 | |
%1814 = shl nuw i64 %1813, 32 | |
%1815 = or i64 %1814, %1808 | |
%1816 = ashr i64 %1815, %1800 | |
%1817 = trunc i64 %1816 to i32 | |
%1818 = zext i32 %1789 to i64 | |
%1819 = shl nuw i64 %1818, 32 | |
%1820 = or i64 %1819, %1813 | |
%1821 = ashr i64 %1820, %1800 | |
%1822 = trunc i64 %1821 to i32 | |
%1823 = zext i32 %1793 to i64 | |
%1824 = shl nuw i64 %1823, 32 | |
%1825 = or i64 %1824, %1818 | |
%1826 = ashr i64 %1825, %1800 | |
%1827 = trunc i64 %1826 to i32 | |
%1828 = shl nsw i32 %1734, 3 | |
%1829 = or i32 %1828, 2 | |
%1830 = icmp sgt i32 %1829, 1018 | |
%1831 = select i1 %1830, double 0x3770000000000000, double 1.000000e+00 | |
%1832 = fmul double %1693, %1831 | |
%1833 = select i1 %1830, i32 136, i32 0 | |
%1834 = sub i32 %1833, %1829 | |
%1835 = shl i32 %1834, 20 | |
%1836 = add i32 %1835, 1127219200 | |
%1837 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %1836, i32 1 | |
%1838 = bitcast <2 x i32> %1837 to double | |
%1839 = insertelement <2 x i32> undef, i32 %1802, i32 0 | |
%1840 = and i32 %1807, 65535 | |
%1841 = or i32 %1840, %1836 | |
%1842 = insertelement <2 x i32> %1839, i32 %1841, i32 1 | |
%1843 = bitcast <2 x i32> %1842 to double | |
%1844 = fsub double %1843, %1838 | |
%1845 = add i32 %1835, 1177550848 | |
%1846 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %1845, i32 1 | |
%1847 = bitcast <2 x i32> %1846 to double | |
%1848 = shl i32 %1812, 16 | |
%1849 = lshr i32 %1807, 16 | |
%1850 = or i32 %1848, %1849 | |
%1851 = insertelement <2 x i32> undef, i32 %1850, i32 0 | |
%1852 = lshr i32 %1812, 16 | |
%1853 = or i32 %1852, %1845 | |
%1854 = insertelement <2 x i32> %1851, i32 %1853, i32 1 | |
%1855 = bitcast <2 x i32> %1854 to double | |
%1856 = fsub double %1855, %1847 | |
%1857 = add i32 %1835, 1227882496 | |
%1858 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %1857, i32 1 | |
%1859 = bitcast <2 x i32> %1858 to double | |
%1860 = insertelement <2 x i32> undef, i32 %1817, i32 0 | |
%1861 = and i32 %1822, 65535 | |
%1862 = or i32 %1861, %1857 | |
%1863 = insertelement <2 x i32> %1860, i32 %1862, i32 1 | |
%1864 = bitcast <2 x i32> %1863 to double | |
%1865 = fsub double %1864, %1859 | |
%1866 = add i32 %1835, 1278214144 | |
%1867 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %1866, i32 1 | |
%1868 = bitcast <2 x i32> %1867 to double | |
%1869 = shl i32 %1827, 16 | |
%1870 = lshr i32 %1822, 16 | |
%1871 = or i32 %1869, %1870 | |
%1872 = insertelement <2 x i32> undef, i32 %1871, i32 0 | |
%1873 = lshr i32 %1827, 16 | |
%1874 = or i32 %1873, %1866 | |
%1875 = insertelement <2 x i32> %1872, i32 %1874, i32 1 | |
%1876 = bitcast <2 x i32> %1875 to double | |
%1877 = fsub double %1876, %1868 | |
%1878 = fmul double %1832, %1844 | |
%1879 = fsub double -0.000000e+00, %1878 | |
%1880 = tail call double @llvm.fma.f64(double %1844, double %1832, double %1879) #6 | |
%1881 = fmul double %1832, %1856 | |
%1882 = fsub double -0.000000e+00, %1881 | |
%1883 = tail call double @llvm.fma.f64(double %1856, double %1832, double %1882) #6 | |
%1884 = fmul double %1832, %1865 | |
%1885 = fsub double -0.000000e+00, %1884 | |
%1886 = tail call double @llvm.fma.f64(double %1865, double %1832, double %1885) #6 | |
%1887 = fmul double %1832, %1877 | |
%1888 = fsub double -0.000000e+00, %1887 | |
%1889 = tail call double @llvm.fma.f64(double %1877, double %1832, double %1888) #6 | |
%1890 = fadd double %1884, %1887 | |
%1891 = fsub double %1890, %1887 | |
%1892 = fsub double %1884, %1891 | |
%1893 = fadd double %1889, %1892 | |
%1894 = fsub double %1893, %1889 | |
%1895 = fsub double %1892, %1894 | |
%1896 = fadd double %1881, %1893 | |
%1897 = fsub double %1896, %1893 | |
%1898 = fsub double %1881, %1897 | |
%1899 = fadd double %1895, %1898 | |
%1900 = fadd double %1886, %1899 | |
%1901 = fsub double %1900, %1886 | |
%1902 = fsub double %1899, %1901 | |
%1903 = fadd double %1878, %1900 | |
%1904 = fsub double %1903, %1900 | |
%1905 = fsub double %1878, %1904 | |
%1906 = fadd double %1902, %1905 | |
%1907 = fadd double %1883, %1906 | |
%1908 = fadd double %1880, %1907 | |
%1909 = fmul double %1890, 9.765625e-04 | |
%1910 = tail call double @llvm.floor.f64(double %1909) #6 | |
%1911 = fsub double %1909, %1910 | |
%1912 = tail call double @fmin(double %1911, double 0x3FEFFFFFFFFFFFFF) #7 | |
%1913 = tail call double @llvm.fabs.f64(double %1909) #3 | |
%1914 = fcmp oeq double %1913, 0x7FF0000000000000 | |
%1915 = select i1 %1914, double 0.000000e+00, double %1912 | |
%1916 = fcmp uno double %1909, 0.000000e+00 | |
%1917 = select i1 %1916, double %1909, double %1915 | |
%1918 = fmul double %1917, 1.024000e+03 | |
%1919 = fadd double %1896, %1918 | |
%1920 = fcmp olt double %1919, 0.000000e+00 | |
%1921 = select i1 %1920, double 1.024000e+03, double 0.000000e+00 | |
%1922 = fadd double %1918, %1921 | |
%1923 = fadd double %1896, %1922 | |
%1924 = tail call double @llvm.floor.f64(double %1923) #6 | |
%1925 = fsub double %1923, %1924 | |
%1926 = tail call double @fmin(double %1925, double 0x3FEFFFFFFFFFFFFF) #7 | |
%1927 = tail call double @llvm.fabs.f64(double %1923) #3 | |
%1928 = fcmp oeq double %1927, 0x7FF0000000000000 | |
%1929 = select i1 %1928, double 0.000000e+00, double %1926 | |
%1930 = fcmp uno double %1923, 0.000000e+00 | |
%1931 = select i1 %1930, double %1923, double %1929 | |
%1932 = fsub double %1923, %1931 | |
%1933 = fptrunc double %1932 to float | |
%1934 = fptosi float %1933 to i32 | |
%1935 = fsub double %1922, %1932 | |
%1936 = fadd double %1896, %1935 | |
%1937 = fsub double %1936, %1935 | |
%1938 = fsub double %1896, %1937 | |
%1939 = fadd double %1903, %1938 | |
%1940 = fsub double %1939, %1938 | |
%1941 = fsub double %1903, %1940 | |
%1942 = fadd double %1908, %1941 | |
%1943 = fcmp oge double %1936, 5.000000e-01 | |
%1944 = zext i1 %1943 to i32 | |
%1945 = add nsw i32 %1944, %1934 | |
%1946 = uitofp i1 %1943 to float | |
%1947 = fpext float %1946 to double | |
%1948 = fsub double %1936, %1947 | |
%1949 = fadd double %1939, %1948 | |
%1950 = fsub double %1949, %1948 | |
%1951 = fsub double %1939, %1950 | |
%1952 = fadd double %1942, %1951 | |
%1953 = fmul double %1949, 0x3FF921FB54442D18 | |
%1954 = fsub double -0.000000e+00, %1953 | |
%1955 = tail call double @llvm.fma.f64(double %1949, double 0x3FF921FB54442D18, double %1954) #6 | |
%1956 = tail call double @llvm.fma.f64(double %1949, double 0x3C91A62633145C06, double %1955) #6 | |
%1957 = tail call double @llvm.fma.f64(double %1952, double 0x3FF921FB54442D18, double %1956) #6 | |
%1958 = fadd double %1953, %1957 | |
%1959 = fsub double %1958, %1953 | |
%1960 = fsub double %1957, %1959 | |
br label %1961 | |
; <label>:1961: ; preds = %1695, %1726 | |
%1962 = phi i32 [ %1725, %1695 ], [ %1945, %1726 ] | |
%1963 = phi double [ %1720, %1695 ], [ %1958, %1726 ] | |
%1964 = phi double [ %1723, %1695 ], [ %1960, %1726 ] | |
%1965 = and i32 %1962, 2 | |
%1966 = fmul double %1963, %1963 | |
%1967 = fmul double %1963, %1966 | |
%1968 = fmul double %1966, 5.000000e-01 | |
%1969 = fsub double 1.000000e+00, %1968 | |
%1970 = tail call double @llvm.fma.f64(double 0x3DE5E0B2F9A43BB8, double %1966, double 0xBE5AE600B42FDFA7) #6 | |
%1971 = tail call double @llvm.fma.f64(double %1970, double %1966, double 0x3EC71DE3796CDE01) #6 | |
%1972 = tail call double @llvm.fma.f64(double %1971, double %1966, double 0xBF2A01A019E83E5C) #6 | |
%1973 = tail call double @llvm.fma.f64(double %1972, double %1966, double 0x3F81111111110BB3) #6 | |
%1974 = tail call double @llvm.fma.f64(double 0xBDA907DB46CC5E42, double %1966, double 0x3E21EEB69037AB78) #6 | |
%1975 = tail call double @llvm.fma.f64(double %1974, double %1966, double 0xBE927E4FA17F65F6) #6 | |
%1976 = tail call double @llvm.fma.f64(double %1975, double %1966, double 0x3EFA01A019F4EC90) #6 | |
%1977 = tail call double @llvm.fma.f64(double %1976, double %1966, double 0xBF56C16C16C16967) #6 | |
%1978 = tail call double @llvm.fma.f64(double %1977, double %1966, double 0x3FA5555555555555) #6 | |
%1979 = fmul double %1966, %1966 | |
%1980 = fsub double 1.000000e+00, %1969 | |
%1981 = fsub double %1980, %1968 | |
%1982 = tail call double @llvm.fma.f64(double %1963, double %1964, double %1981) #6 | |
%1983 = tail call double @llvm.fma.f64(double %1978, double %1979, double %1982) #6 | |
%1984 = fadd double %1969, %1983 | |
%1985 = fsub double -0.000000e+00, %1967 | |
%1986 = fmul double %1964, 5.000000e-01 | |
%1987 = tail call double @llvm.fma.f64(double %1985, double %1973, double %1986) #6 | |
%1988 = fsub double -0.000000e+00, %1964 | |
%1989 = tail call double @llvm.fma.f64(double %1987, double %1966, double %1988) #6 | |
%1990 = tail call double @llvm.fma.f64(double %1985, double 0xBFC5555555555555, double %1989) #6 | |
%1991 = fsub double %1963, %1990 | |
%1992 = fsub double -0.000000e+00, %1991 | |
%1993 = and i32 %1962, 1 | |
%1994 = icmp ne i32 %1993, 0 | |
%1995 = select i1 %1994, double %1992, double %1984 | |
%1996 = bitcast double %1995 to <2 x i32> | |
%1997 = icmp ugt i32 %1965, 1 | |
%1998 = zext i1 %1997 to i32 | |
%1999 = shl nuw i32 %1998, 31 | |
%2000 = extractelement <2 x i32> %1996, i32 1 | |
%2001 = xor i32 %2000, %1999 | |
%2002 = insertelement <2 x i32> %1996, i32 %2001, i32 1 | |
%2003 = fcmp uno double %1693, 0.000000e+00 | |
%2004 = fcmp oeq double %1693, 0x7FF0000000000000 | |
%2005 = or i1 %2004, %2003 | |
%2006 = bitcast <2 x i32> %2002 to double | |
%2007 = select i1 %2005, double 0x7FF8000000000000, double %2006 | |
%2008 = insertelement <4 x double> %1691, double %2007, i32 1 | |
%2009 = shufflevector <4 x double> %1374, <4 x double> %2008, <4 x i32> <i32 0, i32 1, i32 4, i32 5> | |
%2010 = fmul <4 x double> %739, %2009 | |
store <4 x double> %2010, <4 x double> addrspace(4)* %1, align 32, !tbaa !7 | |
br i1 %743, label %2011, label %2042 | |
; <label>:2011: ; preds = %1961 | |
%2012 = tail call double @llvm.fma.f64(double %742, double 0x3FE45F306DC9C883, double 5.000000e-01) #6 | |
%2013 = tail call double @llvm.trunc.f64(double %2012) #6 | |
%2014 = fmul double %2013, 0xBFF921FB54442D18 | |
%2015 = fsub double -0.000000e+00, %2014 | |
%2016 = tail call double @llvm.fma.f64(double 0xBFF921FB54442D18, double %2013, double %2015) #6 | |
%2017 = fmul double %2013, 0xBC91A62633145C06 | |
%2018 = fsub double -0.000000e+00, %2017 | |
%2019 = tail call double @llvm.fma.f64(double 0xBC91A62633145C06, double %2013, double %2018) #6 | |
%2020 = fmul double %2013, 0xB94C1CD129024E08 | |
%2021 = fsub double -0.000000e+00, %2020 | |
%2022 = tail call double @llvm.fma.f64(double 0xB94C1CD129024E08, double %2013, double %2021) #6 | |
%2023 = fadd double %2017, %2016 | |
%2024 = fsub double %2023, %2016 | |
%2025 = fsub double %2017, %2024 | |
%2026 = fadd double %2020, %2025 | |
%2027 = fadd double %2019, %2026 | |
%2028 = fadd double %2022, %2027 | |
%2029 = fadd double %2014, %2023 | |
%2030 = fsub double %2029, %2014 | |
%2031 = fsub double %2023, %2030 | |
%2032 = fadd double %2031, %2028 | |
%2033 = fsub double %2032, %2031 | |
%2034 = fsub double %2028, %2033 | |
%2035 = fadd double %742, %2029 | |
%2036 = fadd double %2035, %2032 | |
%2037 = fsub double %2036, %2035 | |
%2038 = fsub double %2032, %2037 | |
%2039 = fadd double %2034, %2038 | |
%2040 = fptosi double %2013 to i64 | |
%2041 = trunc i64 %2040 to i32 | |
br label %2277 | |
; <label>:2042: ; preds = %1961 | |
%2043 = bitcast double %742 to i64 | |
%2044 = lshr i64 %2043, 52 | |
%2045 = trunc i64 %2044 to i32 | |
%2046 = add nsw i32 %2045, -1023 | |
%2047 = ashr i32 %2046, 3 | |
%2048 = add nsw i32 %2047, 17 | |
%2049 = icmp slt i32 %2048, 23 | |
%2050 = select i1 %2049, i32 23, i32 %2048 | |
%2051 = sub nsw i32 150, %2050 | |
%2052 = and i32 %2051, -16 | |
%2053 = sext i32 %2052 to i64 | |
%2054 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %2053 | |
%2055 = bitcast i8 addrspace(2)* %2054 to <4 x i32> addrspace(2)* | |
%2056 = load <4 x i32>, <4 x i32> addrspace(2)* %2055, align 16, !tbaa !7 | |
%2057 = add nsw i32 %2052, 16 | |
%2058 = sext i32 %2057 to i64 | |
%2059 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %2058 | |
%2060 = bitcast i8 addrspace(2)* %2059 to <4 x i32> addrspace(2)* | |
%2061 = load <4 x i32>, <4 x i32> addrspace(2)* %2060, align 16, !tbaa !7 | |
%2062 = add nsw i32 %2052, 32 | |
%2063 = sext i32 %2062 to i64 | |
%2064 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %2063 | |
%2065 = bitcast i8 addrspace(2)* %2064 to <4 x i32> addrspace(2)* | |
%2066 = load <4 x i32>, <4 x i32> addrspace(2)* %2065, align 16, !tbaa !7 | |
%2067 = lshr i32 %2051, 2 | |
%2068 = and i32 %2067, 3 | |
%2069 = insertelement <4 x i32> undef, i32 %2068, i32 0 | |
%2070 = shufflevector <4 x i32> %2069, <4 x i32> undef, <4 x i32> zeroinitializer | |
%2071 = icmp eq <4 x i32> %2070, <i32 0, i32 1, i32 2, i32 3> | |
%2072 = sext <4 x i1> %2071 to <4 x i32> | |
%2073 = extractelement <4 x i32> %2072, i32 1 | |
%2074 = icmp ne i32 %2073, 0 | |
%2075 = extractelement <4 x i32> %2056, i32 1 | |
%2076 = extractelement <4 x i32> %2056, i32 0 | |
%2077 = select i1 %2074, i32 %2075, i32 %2076 | |
%2078 = extractelement <4 x i32> %2072, i32 2 | |
%2079 = icmp ne i32 %2078, 0 | |
%2080 = extractelement <4 x i32> %2056, i32 2 | |
%2081 = select i1 %2079, i32 %2080, i32 %2077 | |
%2082 = extractelement <4 x i32> %2072, i32 3 | |
%2083 = icmp ne i32 %2082, 0 | |
%2084 = extractelement <4 x i32> %2056, i32 3 | |
%2085 = select i1 %2083, i32 %2084, i32 %2081 | |
%2086 = select i1 %2074, i32 %2080, i32 %2075 | |
%2087 = select i1 %2079, i32 %2084, i32 %2086 | |
%2088 = extractelement <4 x i32> %2061, i32 0 | |
%2089 = select i1 %2083, i32 %2088, i32 %2087 | |
%2090 = select i1 %2074, i32 %2084, i32 %2080 | |
%2091 = select i1 %2079, i32 %2088, i32 %2090 | |
%2092 = extractelement <4 x i32> %2061, i32 1 | |
%2093 = select i1 %2083, i32 %2092, i32 %2091 | |
%2094 = select i1 %2074, i32 %2088, i32 %2084 | |
%2095 = select i1 %2079, i32 %2092, i32 %2094 | |
%2096 = extractelement <4 x i32> %2061, i32 2 | |
%2097 = select i1 %2083, i32 %2096, i32 %2095 | |
%2098 = select i1 %2074, i32 %2092, i32 %2088 | |
%2099 = select i1 %2079, i32 %2096, i32 %2098 | |
%2100 = extractelement <4 x i32> %2061, i32 3 | |
%2101 = select i1 %2083, i32 %2100, i32 %2099 | |
%2102 = select i1 %2074, i32 %2096, i32 %2092 | |
%2103 = select i1 %2079, i32 %2100, i32 %2102 | |
%2104 = extractelement <4 x i32> %2066, i32 0 | |
%2105 = select i1 %2083, i32 %2104, i32 %2103 | |
%2106 = select i1 %2074, i32 %2100, i32 %2096 | |
%2107 = select i1 %2079, i32 %2104, i32 %2106 | |
%2108 = extractelement <4 x i32> %2066, i32 1 | |
%2109 = select i1 %2083, i32 %2108, i32 %2107 | |
%2110 = zext i32 %2089 to i64 | |
%2111 = shl nuw i64 %2110, 32 | |
%2112 = zext i32 %2085 to i64 | |
%2113 = or i64 %2111, %2112 | |
%2114 = shl i32 %2051, 3 | |
%2115 = zext i32 %2114 to i64 | |
%2116 = and i64 %2115, 24 | |
%2117 = ashr i64 %2113, %2116 | |
%2118 = trunc i64 %2117 to i32 | |
%2119 = zext i32 %2093 to i64 | |
%2120 = shl nuw i64 %2119, 32 | |
%2121 = or i64 %2120, %2110 | |
%2122 = ashr i64 %2121, %2116 | |
%2123 = trunc i64 %2122 to i32 | |
%2124 = zext i32 %2097 to i64 | |
%2125 = shl nuw i64 %2124, 32 | |
%2126 = or i64 %2125, %2119 | |
%2127 = ashr i64 %2126, %2116 | |
%2128 = trunc i64 %2127 to i32 | |
%2129 = zext i32 %2101 to i64 | |
%2130 = shl nuw i64 %2129, 32 | |
%2131 = or i64 %2130, %2124 | |
%2132 = ashr i64 %2131, %2116 | |
%2133 = trunc i64 %2132 to i32 | |
%2134 = zext i32 %2105 to i64 | |
%2135 = shl nuw i64 %2134, 32 | |
%2136 = or i64 %2135, %2129 | |
%2137 = ashr i64 %2136, %2116 | |
%2138 = trunc i64 %2137 to i32 | |
%2139 = zext i32 %2109 to i64 | |
%2140 = shl nuw i64 %2139, 32 | |
%2141 = or i64 %2140, %2134 | |
%2142 = ashr i64 %2141, %2116 | |
%2143 = trunc i64 %2142 to i32 | |
%2144 = shl nsw i32 %2050, 3 | |
%2145 = or i32 %2144, 2 | |
%2146 = icmp sgt i32 %2145, 1018 | |
%2147 = select i1 %2146, double 0x3770000000000000, double 1.000000e+00 | |
%2148 = fmul double %742, %2147 | |
%2149 = select i1 %2146, i32 136, i32 0 | |
%2150 = sub i32 %2149, %2145 | |
%2151 = shl i32 %2150, 20 | |
%2152 = add i32 %2151, 1127219200 | |
%2153 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %2152, i32 1 | |
%2154 = bitcast <2 x i32> %2153 to double | |
%2155 = insertelement <2 x i32> undef, i32 %2118, i32 0 | |
%2156 = and i32 %2123, 65535 | |
%2157 = or i32 %2156, %2152 | |
%2158 = insertelement <2 x i32> %2155, i32 %2157, i32 1 | |
%2159 = bitcast <2 x i32> %2158 to double | |
%2160 = fsub double %2159, %2154 | |
%2161 = add i32 %2151, 1177550848 | |
%2162 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %2161, i32 1 | |
%2163 = bitcast <2 x i32> %2162 to double | |
%2164 = shl i32 %2128, 16 | |
%2165 = lshr i32 %2123, 16 | |
%2166 = or i32 %2164, %2165 | |
%2167 = insertelement <2 x i32> undef, i32 %2166, i32 0 | |
%2168 = lshr i32 %2128, 16 | |
%2169 = or i32 %2168, %2161 | |
%2170 = insertelement <2 x i32> %2167, i32 %2169, i32 1 | |
%2171 = bitcast <2 x i32> %2170 to double | |
%2172 = fsub double %2171, %2163 | |
%2173 = add i32 %2151, 1227882496 | |
%2174 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %2173, i32 1 | |
%2175 = bitcast <2 x i32> %2174 to double | |
%2176 = insertelement <2 x i32> undef, i32 %2133, i32 0 | |
%2177 = and i32 %2138, 65535 | |
%2178 = or i32 %2177, %2173 | |
%2179 = insertelement <2 x i32> %2176, i32 %2178, i32 1 | |
%2180 = bitcast <2 x i32> %2179 to double | |
%2181 = fsub double %2180, %2175 | |
%2182 = add i32 %2151, 1278214144 | |
%2183 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %2182, i32 1 | |
%2184 = bitcast <2 x i32> %2183 to double | |
%2185 = shl i32 %2143, 16 | |
%2186 = lshr i32 %2138, 16 | |
%2187 = or i32 %2185, %2186 | |
%2188 = insertelement <2 x i32> undef, i32 %2187, i32 0 | |
%2189 = lshr i32 %2143, 16 | |
%2190 = or i32 %2189, %2182 | |
%2191 = insertelement <2 x i32> %2188, i32 %2190, i32 1 | |
%2192 = bitcast <2 x i32> %2191 to double | |
%2193 = fsub double %2192, %2184 | |
%2194 = fmul double %2148, %2160 | |
%2195 = fsub double -0.000000e+00, %2194 | |
%2196 = tail call double @llvm.fma.f64(double %2160, double %2148, double %2195) #6 | |
%2197 = fmul double %2148, %2172 | |
%2198 = fsub double -0.000000e+00, %2197 | |
%2199 = tail call double @llvm.fma.f64(double %2172, double %2148, double %2198) #6 | |
%2200 = fmul double %2148, %2181 | |
%2201 = fsub double -0.000000e+00, %2200 | |
%2202 = tail call double @llvm.fma.f64(double %2181, double %2148, double %2201) #6 | |
%2203 = fmul double %2148, %2193 | |
%2204 = fsub double -0.000000e+00, %2203 | |
%2205 = tail call double @llvm.fma.f64(double %2193, double %2148, double %2204) #6 | |
%2206 = fadd double %2200, %2203 | |
%2207 = fsub double %2206, %2203 | |
%2208 = fsub double %2200, %2207 | |
%2209 = fadd double %2205, %2208 | |
%2210 = fsub double %2209, %2205 | |
%2211 = fsub double %2208, %2210 | |
%2212 = fadd double %2197, %2209 | |
%2213 = fsub double %2212, %2209 | |
%2214 = fsub double %2197, %2213 | |
%2215 = fadd double %2211, %2214 | |
%2216 = fadd double %2202, %2215 | |
%2217 = fsub double %2216, %2202 | |
%2218 = fsub double %2215, %2217 | |
%2219 = fadd double %2194, %2216 | |
%2220 = fsub double %2219, %2216 | |
%2221 = fsub double %2194, %2220 | |
%2222 = fadd double %2218, %2221 | |
%2223 = fadd double %2199, %2222 | |
%2224 = fadd double %2196, %2223 | |
%2225 = fmul double %2206, 9.765625e-04 | |
%2226 = tail call double @llvm.floor.f64(double %2225) #6 | |
%2227 = fsub double %2225, %2226 | |
%2228 = tail call double @fmin(double %2227, double 0x3FEFFFFFFFFFFFFF) #7 | |
%2229 = tail call double @llvm.fabs.f64(double %2225) #3 | |
%2230 = fcmp oeq double %2229, 0x7FF0000000000000 | |
%2231 = select i1 %2230, double 0.000000e+00, double %2228 | |
%2232 = fcmp uno double %2225, 0.000000e+00 | |
%2233 = select i1 %2232, double %2225, double %2231 | |
%2234 = fmul double %2233, 1.024000e+03 | |
%2235 = fadd double %2212, %2234 | |
%2236 = fcmp olt double %2235, 0.000000e+00 | |
%2237 = select i1 %2236, double 1.024000e+03, double 0.000000e+00 | |
%2238 = fadd double %2234, %2237 | |
%2239 = fadd double %2212, %2238 | |
%2240 = tail call double @llvm.floor.f64(double %2239) #6 | |
%2241 = fsub double %2239, %2240 | |
%2242 = tail call double @fmin(double %2241, double 0x3FEFFFFFFFFFFFFF) #7 | |
%2243 = tail call double @llvm.fabs.f64(double %2239) #3 | |
%2244 = fcmp oeq double %2243, 0x7FF0000000000000 | |
%2245 = select i1 %2244, double 0.000000e+00, double %2242 | |
%2246 = fcmp uno double %2239, 0.000000e+00 | |
%2247 = select i1 %2246, double %2239, double %2245 | |
%2248 = fsub double %2239, %2247 | |
%2249 = fptrunc double %2248 to float | |
%2250 = fptosi float %2249 to i32 | |
%2251 = fsub double %2238, %2248 | |
%2252 = fadd double %2212, %2251 | |
%2253 = fsub double %2252, %2251 | |
%2254 = fsub double %2212, %2253 | |
%2255 = fadd double %2219, %2254 | |
%2256 = fsub double %2255, %2254 | |
%2257 = fsub double %2219, %2256 | |
%2258 = fadd double %2224, %2257 | |
%2259 = fcmp oge double %2252, 5.000000e-01 | |
%2260 = zext i1 %2259 to i32 | |
%2261 = add nsw i32 %2260, %2250 | |
%2262 = uitofp i1 %2259 to float | |
%2263 = fpext float %2262 to double | |
%2264 = fsub double %2252, %2263 | |
%2265 = fadd double %2255, %2264 | |
%2266 = fsub double %2265, %2264 | |
%2267 = fsub double %2255, %2266 | |
%2268 = fadd double %2258, %2267 | |
%2269 = fmul double %2265, 0x3FF921FB54442D18 | |
%2270 = fsub double -0.000000e+00, %2269 | |
%2271 = tail call double @llvm.fma.f64(double %2265, double 0x3FF921FB54442D18, double %2270) #6 | |
%2272 = tail call double @llvm.fma.f64(double %2265, double 0x3C91A62633145C06, double %2271) #6 | |
%2273 = tail call double @llvm.fma.f64(double %2268, double 0x3FF921FB54442D18, double %2272) #6 | |
%2274 = fadd double %2269, %2273 | |
%2275 = fsub double %2274, %2269 | |
%2276 = fsub double %2273, %2275 | |
br label %2277 | |
; <label>:2277: ; preds = %2042, %2011 | |
%2278 = phi i32 [ %2041, %2011 ], [ %2261, %2042 ] | |
%2279 = phi double [ %2036, %2011 ], [ %2274, %2042 ] | |
%2280 = phi double [ %2039, %2011 ], [ %2276, %2042 ] | |
%2281 = and i32 %2278, 2 | |
%2282 = fmul double %2279, %2279 | |
%2283 = fmul double %2279, %2282 | |
%2284 = fmul double %2282, 5.000000e-01 | |
%2285 = fsub double 1.000000e+00, %2284 | |
%2286 = tail call double @llvm.fma.f64(double 0x3DE5E0B2F9A43BB8, double %2282, double 0xBE5AE600B42FDFA7) #6 | |
%2287 = tail call double @llvm.fma.f64(double %2286, double %2282, double 0x3EC71DE3796CDE01) #6 | |
%2288 = tail call double @llvm.fma.f64(double %2287, double %2282, double 0xBF2A01A019E83E5C) #6 | |
%2289 = tail call double @llvm.fma.f64(double %2288, double %2282, double 0x3F81111111110BB3) #6 | |
%2290 = tail call double @llvm.fma.f64(double 0xBDA907DB46CC5E42, double %2282, double 0x3E21EEB69037AB78) #6 | |
%2291 = tail call double @llvm.fma.f64(double %2290, double %2282, double 0xBE927E4FA17F65F6) #6 | |
%2292 = tail call double @llvm.fma.f64(double %2291, double %2282, double 0x3EFA01A019F4EC90) #6 | |
%2293 = tail call double @llvm.fma.f64(double %2292, double %2282, double 0xBF56C16C16C16967) #6 | |
%2294 = tail call double @llvm.fma.f64(double %2293, double %2282, double 0x3FA5555555555555) #6 | |
%2295 = fmul double %2282, %2282 | |
%2296 = fsub double 1.000000e+00, %2285 | |
%2297 = fsub double %2296, %2284 | |
%2298 = tail call double @llvm.fma.f64(double %2279, double %2280, double %2297) #6 | |
%2299 = tail call double @llvm.fma.f64(double %2294, double %2295, double %2298) #6 | |
%2300 = fadd double %2285, %2299 | |
%2301 = fsub double -0.000000e+00, %2283 | |
%2302 = fmul double %2280, 5.000000e-01 | |
%2303 = tail call double @llvm.fma.f64(double %2301, double %2289, double %2302) #6 | |
%2304 = fsub double -0.000000e+00, %2280 | |
%2305 = tail call double @llvm.fma.f64(double %2303, double %2282, double %2304) #6 | |
%2306 = tail call double @llvm.fma.f64(double %2301, double 0xBFC5555555555555, double %2305) #6 | |
%2307 = fsub double %2279, %2306 | |
%2308 = and i32 %2278, 1 | |
%2309 = icmp ne i32 %2308, 0 | |
%2310 = select i1 %2309, double %2300, double %2307 | |
%2311 = bitcast double %2310 to <2 x i32> | |
%2312 = icmp ugt i32 %2281, 1 | |
%2313 = fcmp olt double %741, 0.000000e+00 | |
%2314 = xor i1 %2313, %2312 | |
%2315 = zext i1 %2314 to i32 | |
%2316 = shl nuw i32 %2315, 31 | |
%2317 = extractelement <2 x i32> %2311, i32 1 | |
%2318 = xor i32 %2317, %2316 | |
%2319 = insertelement <2 x i32> %2311, i32 %2318, i32 1 | |
%2320 = fcmp uno double %741, 0.000000e+00 | |
%2321 = or i1 %2320, %1053 | |
%2322 = bitcast <2 x i32> %2319 to double | |
%2323 = select i1 %2321, double 0x7FF8000000000000, double %2322 | |
%2324 = insertelement <4 x double> undef, double %2323, i32 0 | |
br i1 %1060, label %2325, label %2356 | |
; <label>:2325: ; preds = %2277 | |
%2326 = tail call double @llvm.fma.f64(double %1059, double 0x3FE45F306DC9C883, double 5.000000e-01) #6 | |
%2327 = tail call double @llvm.trunc.f64(double %2326) #6 | |
%2328 = fmul double %2327, 0xBFF921FB54442D18 | |
%2329 = fsub double -0.000000e+00, %2328 | |
%2330 = tail call double @llvm.fma.f64(double 0xBFF921FB54442D18, double %2327, double %2329) #6 | |
%2331 = fmul double %2327, 0xBC91A62633145C06 | |
%2332 = fsub double -0.000000e+00, %2331 | |
%2333 = tail call double @llvm.fma.f64(double 0xBC91A62633145C06, double %2327, double %2332) #6 | |
%2334 = fmul double %2327, 0xB94C1CD129024E08 | |
%2335 = fsub double -0.000000e+00, %2334 | |
%2336 = tail call double @llvm.fma.f64(double 0xB94C1CD129024E08, double %2327, double %2335) #6 | |
%2337 = fadd double %2331, %2330 | |
%2338 = fsub double %2337, %2330 | |
%2339 = fsub double %2331, %2338 | |
%2340 = fadd double %2334, %2339 | |
%2341 = fadd double %2333, %2340 | |
%2342 = fadd double %2336, %2341 | |
%2343 = fadd double %2328, %2337 | |
%2344 = fsub double %2343, %2328 | |
%2345 = fsub double %2337, %2344 | |
%2346 = fadd double %2345, %2342 | |
%2347 = fsub double %2346, %2345 | |
%2348 = fsub double %2342, %2347 | |
%2349 = fadd double %1059, %2343 | |
%2350 = fadd double %2349, %2346 | |
%2351 = fsub double %2350, %2349 | |
%2352 = fsub double %2346, %2351 | |
%2353 = fadd double %2348, %2352 | |
%2354 = fptosi double %2327 to i64 | |
%2355 = trunc i64 %2354 to i32 | |
br label %2591 | |
; <label>:2356: ; preds = %2277 | |
%2357 = bitcast double %1059 to i64 | |
%2358 = lshr i64 %2357, 52 | |
%2359 = trunc i64 %2358 to i32 | |
%2360 = add nsw i32 %2359, -1023 | |
%2361 = ashr i32 %2360, 3 | |
%2362 = add nsw i32 %2361, 17 | |
%2363 = icmp slt i32 %2362, 23 | |
%2364 = select i1 %2363, i32 23, i32 %2362 | |
%2365 = sub nsw i32 150, %2364 | |
%2366 = and i32 %2365, -16 | |
%2367 = sext i32 %2366 to i64 | |
%2368 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %2367 | |
%2369 = bitcast i8 addrspace(2)* %2368 to <4 x i32> addrspace(2)* | |
%2370 = load <4 x i32>, <4 x i32> addrspace(2)* %2369, align 16, !tbaa !7 | |
%2371 = add nsw i32 %2366, 16 | |
%2372 = sext i32 %2371 to i64 | |
%2373 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %2372 | |
%2374 = bitcast i8 addrspace(2)* %2373 to <4 x i32> addrspace(2)* | |
%2375 = load <4 x i32>, <4 x i32> addrspace(2)* %2374, align 16, !tbaa !7 | |
%2376 = add nsw i32 %2366, 32 | |
%2377 = sext i32 %2376 to i64 | |
%2378 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %2377 | |
%2379 = bitcast i8 addrspace(2)* %2378 to <4 x i32> addrspace(2)* | |
%2380 = load <4 x i32>, <4 x i32> addrspace(2)* %2379, align 16, !tbaa !7 | |
%2381 = lshr i32 %2365, 2 | |
%2382 = and i32 %2381, 3 | |
%2383 = insertelement <4 x i32> undef, i32 %2382, i32 0 | |
%2384 = shufflevector <4 x i32> %2383, <4 x i32> undef, <4 x i32> zeroinitializer | |
%2385 = icmp eq <4 x i32> %2384, <i32 0, i32 1, i32 2, i32 3> | |
%2386 = sext <4 x i1> %2385 to <4 x i32> | |
%2387 = extractelement <4 x i32> %2386, i32 1 | |
%2388 = icmp ne i32 %2387, 0 | |
%2389 = extractelement <4 x i32> %2370, i32 1 | |
%2390 = extractelement <4 x i32> %2370, i32 0 | |
%2391 = select i1 %2388, i32 %2389, i32 %2390 | |
%2392 = extractelement <4 x i32> %2386, i32 2 | |
%2393 = icmp ne i32 %2392, 0 | |
%2394 = extractelement <4 x i32> %2370, i32 2 | |
%2395 = select i1 %2393, i32 %2394, i32 %2391 | |
%2396 = extractelement <4 x i32> %2386, i32 3 | |
%2397 = icmp ne i32 %2396, 0 | |
%2398 = extractelement <4 x i32> %2370, i32 3 | |
%2399 = select i1 %2397, i32 %2398, i32 %2395 | |
%2400 = select i1 %2388, i32 %2394, i32 %2389 | |
%2401 = select i1 %2393, i32 %2398, i32 %2400 | |
%2402 = extractelement <4 x i32> %2375, i32 0 | |
%2403 = select i1 %2397, i32 %2402, i32 %2401 | |
%2404 = select i1 %2388, i32 %2398, i32 %2394 | |
%2405 = select i1 %2393, i32 %2402, i32 %2404 | |
%2406 = extractelement <4 x i32> %2375, i32 1 | |
%2407 = select i1 %2397, i32 %2406, i32 %2405 | |
%2408 = select i1 %2388, i32 %2402, i32 %2398 | |
%2409 = select i1 %2393, i32 %2406, i32 %2408 | |
%2410 = extractelement <4 x i32> %2375, i32 2 | |
%2411 = select i1 %2397, i32 %2410, i32 %2409 | |
%2412 = select i1 %2388, i32 %2406, i32 %2402 | |
%2413 = select i1 %2393, i32 %2410, i32 %2412 | |
%2414 = extractelement <4 x i32> %2375, i32 3 | |
%2415 = select i1 %2397, i32 %2414, i32 %2413 | |
%2416 = select i1 %2388, i32 %2410, i32 %2406 | |
%2417 = select i1 %2393, i32 %2414, i32 %2416 | |
%2418 = extractelement <4 x i32> %2380, i32 0 | |
%2419 = select i1 %2397, i32 %2418, i32 %2417 | |
%2420 = select i1 %2388, i32 %2414, i32 %2410 | |
%2421 = select i1 %2393, i32 %2418, i32 %2420 | |
%2422 = extractelement <4 x i32> %2380, i32 1 | |
%2423 = select i1 %2397, i32 %2422, i32 %2421 | |
%2424 = zext i32 %2403 to i64 | |
%2425 = shl nuw i64 %2424, 32 | |
%2426 = zext i32 %2399 to i64 | |
%2427 = or i64 %2425, %2426 | |
%2428 = shl i32 %2365, 3 | |
%2429 = zext i32 %2428 to i64 | |
%2430 = and i64 %2429, 24 | |
%2431 = ashr i64 %2427, %2430 | |
%2432 = trunc i64 %2431 to i32 | |
%2433 = zext i32 %2407 to i64 | |
%2434 = shl nuw i64 %2433, 32 | |
%2435 = or i64 %2434, %2424 | |
%2436 = ashr i64 %2435, %2430 | |
%2437 = trunc i64 %2436 to i32 | |
%2438 = zext i32 %2411 to i64 | |
%2439 = shl nuw i64 %2438, 32 | |
%2440 = or i64 %2439, %2433 | |
%2441 = ashr i64 %2440, %2430 | |
%2442 = trunc i64 %2441 to i32 | |
%2443 = zext i32 %2415 to i64 | |
%2444 = shl nuw i64 %2443, 32 | |
%2445 = or i64 %2444, %2438 | |
%2446 = ashr i64 %2445, %2430 | |
%2447 = trunc i64 %2446 to i32 | |
%2448 = zext i32 %2419 to i64 | |
%2449 = shl nuw i64 %2448, 32 | |
%2450 = or i64 %2449, %2443 | |
%2451 = ashr i64 %2450, %2430 | |
%2452 = trunc i64 %2451 to i32 | |
%2453 = zext i32 %2423 to i64 | |
%2454 = shl nuw i64 %2453, 32 | |
%2455 = or i64 %2454, %2448 | |
%2456 = ashr i64 %2455, %2430 | |
%2457 = trunc i64 %2456 to i32 | |
%2458 = shl nsw i32 %2364, 3 | |
%2459 = or i32 %2458, 2 | |
%2460 = icmp sgt i32 %2459, 1018 | |
%2461 = select i1 %2460, double 0x3770000000000000, double 1.000000e+00 | |
%2462 = fmul double %1059, %2461 | |
%2463 = select i1 %2460, i32 136, i32 0 | |
%2464 = sub i32 %2463, %2459 | |
%2465 = shl i32 %2464, 20 | |
%2466 = add i32 %2465, 1127219200 | |
%2467 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %2466, i32 1 | |
%2468 = bitcast <2 x i32> %2467 to double | |
%2469 = insertelement <2 x i32> undef, i32 %2432, i32 0 | |
%2470 = and i32 %2437, 65535 | |
%2471 = or i32 %2470, %2466 | |
%2472 = insertelement <2 x i32> %2469, i32 %2471, i32 1 | |
%2473 = bitcast <2 x i32> %2472 to double | |
%2474 = fsub double %2473, %2468 | |
%2475 = add i32 %2465, 1177550848 | |
%2476 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %2475, i32 1 | |
%2477 = bitcast <2 x i32> %2476 to double | |
%2478 = shl i32 %2442, 16 | |
%2479 = lshr i32 %2437, 16 | |
%2480 = or i32 %2478, %2479 | |
%2481 = insertelement <2 x i32> undef, i32 %2480, i32 0 | |
%2482 = lshr i32 %2442, 16 | |
%2483 = or i32 %2482, %2475 | |
%2484 = insertelement <2 x i32> %2481, i32 %2483, i32 1 | |
%2485 = bitcast <2 x i32> %2484 to double | |
%2486 = fsub double %2485, %2477 | |
%2487 = add i32 %2465, 1227882496 | |
%2488 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %2487, i32 1 | |
%2489 = bitcast <2 x i32> %2488 to double | |
%2490 = insertelement <2 x i32> undef, i32 %2447, i32 0 | |
%2491 = and i32 %2452, 65535 | |
%2492 = or i32 %2491, %2487 | |
%2493 = insertelement <2 x i32> %2490, i32 %2492, i32 1 | |
%2494 = bitcast <2 x i32> %2493 to double | |
%2495 = fsub double %2494, %2489 | |
%2496 = add i32 %2465, 1278214144 | |
%2497 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %2496, i32 1 | |
%2498 = bitcast <2 x i32> %2497 to double | |
%2499 = shl i32 %2457, 16 | |
%2500 = lshr i32 %2452, 16 | |
%2501 = or i32 %2499, %2500 | |
%2502 = insertelement <2 x i32> undef, i32 %2501, i32 0 | |
%2503 = lshr i32 %2457, 16 | |
%2504 = or i32 %2503, %2496 | |
%2505 = insertelement <2 x i32> %2502, i32 %2504, i32 1 | |
%2506 = bitcast <2 x i32> %2505 to double | |
%2507 = fsub double %2506, %2498 | |
%2508 = fmul double %2462, %2474 | |
%2509 = fsub double -0.000000e+00, %2508 | |
%2510 = tail call double @llvm.fma.f64(double %2474, double %2462, double %2509) #6 | |
%2511 = fmul double %2462, %2486 | |
%2512 = fsub double -0.000000e+00, %2511 | |
%2513 = tail call double @llvm.fma.f64(double %2486, double %2462, double %2512) #6 | |
%2514 = fmul double %2462, %2495 | |
%2515 = fsub double -0.000000e+00, %2514 | |
%2516 = tail call double @llvm.fma.f64(double %2495, double %2462, double %2515) #6 | |
%2517 = fmul double %2462, %2507 | |
%2518 = fsub double -0.000000e+00, %2517 | |
%2519 = tail call double @llvm.fma.f64(double %2507, double %2462, double %2518) #6 | |
%2520 = fadd double %2514, %2517 | |
%2521 = fsub double %2520, %2517 | |
%2522 = fsub double %2514, %2521 | |
%2523 = fadd double %2519, %2522 | |
%2524 = fsub double %2523, %2519 | |
%2525 = fsub double %2522, %2524 | |
%2526 = fadd double %2511, %2523 | |
%2527 = fsub double %2526, %2523 | |
%2528 = fsub double %2511, %2527 | |
%2529 = fadd double %2525, %2528 | |
%2530 = fadd double %2516, %2529 | |
%2531 = fsub double %2530, %2516 | |
%2532 = fsub double %2529, %2531 | |
%2533 = fadd double %2508, %2530 | |
%2534 = fsub double %2533, %2530 | |
%2535 = fsub double %2508, %2534 | |
%2536 = fadd double %2532, %2535 | |
%2537 = fadd double %2513, %2536 | |
%2538 = fadd double %2510, %2537 | |
%2539 = fmul double %2520, 9.765625e-04 | |
%2540 = tail call double @llvm.floor.f64(double %2539) #6 | |
%2541 = fsub double %2539, %2540 | |
%2542 = tail call double @fmin(double %2541, double 0x3FEFFFFFFFFFFFFF) #7 | |
%2543 = tail call double @llvm.fabs.f64(double %2539) #3 | |
%2544 = fcmp oeq double %2543, 0x7FF0000000000000 | |
%2545 = select i1 %2544, double 0.000000e+00, double %2542 | |
%2546 = fcmp uno double %2539, 0.000000e+00 | |
%2547 = select i1 %2546, double %2539, double %2545 | |
%2548 = fmul double %2547, 1.024000e+03 | |
%2549 = fadd double %2526, %2548 | |
%2550 = fcmp olt double %2549, 0.000000e+00 | |
%2551 = select i1 %2550, double 1.024000e+03, double 0.000000e+00 | |
%2552 = fadd double %2548, %2551 | |
%2553 = fadd double %2526, %2552 | |
%2554 = tail call double @llvm.floor.f64(double %2553) #6 | |
%2555 = fsub double %2553, %2554 | |
%2556 = tail call double @fmin(double %2555, double 0x3FEFFFFFFFFFFFFF) #7 | |
%2557 = tail call double @llvm.fabs.f64(double %2553) #3 | |
%2558 = fcmp oeq double %2557, 0x7FF0000000000000 | |
%2559 = select i1 %2558, double 0.000000e+00, double %2556 | |
%2560 = fcmp uno double %2553, 0.000000e+00 | |
%2561 = select i1 %2560, double %2553, double %2559 | |
%2562 = fsub double %2553, %2561 | |
%2563 = fptrunc double %2562 to float | |
%2564 = fptosi float %2563 to i32 | |
%2565 = fsub double %2552, %2562 | |
%2566 = fadd double %2526, %2565 | |
%2567 = fsub double %2566, %2565 | |
%2568 = fsub double %2526, %2567 | |
%2569 = fadd double %2533, %2568 | |
%2570 = fsub double %2569, %2568 | |
%2571 = fsub double %2533, %2570 | |
%2572 = fadd double %2538, %2571 | |
%2573 = fcmp oge double %2566, 5.000000e-01 | |
%2574 = zext i1 %2573 to i32 | |
%2575 = add nsw i32 %2574, %2564 | |
%2576 = uitofp i1 %2573 to float | |
%2577 = fpext float %2576 to double | |
%2578 = fsub double %2566, %2577 | |
%2579 = fadd double %2569, %2578 | |
%2580 = fsub double %2579, %2578 | |
%2581 = fsub double %2569, %2580 | |
%2582 = fadd double %2572, %2581 | |
%2583 = fmul double %2579, 0x3FF921FB54442D18 | |
%2584 = fsub double -0.000000e+00, %2583 | |
%2585 = tail call double @llvm.fma.f64(double %2579, double 0x3FF921FB54442D18, double %2584) #6 | |
%2586 = tail call double @llvm.fma.f64(double %2579, double 0x3C91A62633145C06, double %2585) #6 | |
%2587 = tail call double @llvm.fma.f64(double %2582, double 0x3FF921FB54442D18, double %2586) #6 | |
%2588 = fadd double %2583, %2587 | |
%2589 = fsub double %2588, %2583 | |
%2590 = fsub double %2587, %2589 | |
br label %2591 | |
; <label>:2591: ; preds = %2356, %2325 | |
%2592 = phi i32 [ %2355, %2325 ], [ %2575, %2356 ] | |
%2593 = phi double [ %2350, %2325 ], [ %2588, %2356 ] | |
%2594 = phi double [ %2353, %2325 ], [ %2590, %2356 ] | |
%2595 = and i32 %2592, 2 | |
%2596 = fmul double %2593, %2593 | |
%2597 = fmul double %2593, %2596 | |
%2598 = fmul double %2596, 5.000000e-01 | |
%2599 = fsub double 1.000000e+00, %2598 | |
%2600 = tail call double @llvm.fma.f64(double 0x3DE5E0B2F9A43BB8, double %2596, double 0xBE5AE600B42FDFA7) #6 | |
%2601 = tail call double @llvm.fma.f64(double %2600, double %2596, double 0x3EC71DE3796CDE01) #6 | |
%2602 = tail call double @llvm.fma.f64(double %2601, double %2596, double 0xBF2A01A019E83E5C) #6 | |
%2603 = tail call double @llvm.fma.f64(double %2602, double %2596, double 0x3F81111111110BB3) #6 | |
%2604 = tail call double @llvm.fma.f64(double 0xBDA907DB46CC5E42, double %2596, double 0x3E21EEB69037AB78) #6 | |
%2605 = tail call double @llvm.fma.f64(double %2604, double %2596, double 0xBE927E4FA17F65F6) #6 | |
%2606 = tail call double @llvm.fma.f64(double %2605, double %2596, double 0x3EFA01A019F4EC90) #6 | |
%2607 = tail call double @llvm.fma.f64(double %2606, double %2596, double 0xBF56C16C16C16967) #6 | |
%2608 = tail call double @llvm.fma.f64(double %2607, double %2596, double 0x3FA5555555555555) #6 | |
%2609 = fmul double %2596, %2596 | |
%2610 = fsub double 1.000000e+00, %2599 | |
%2611 = fsub double %2610, %2598 | |
%2612 = tail call double @llvm.fma.f64(double %2593, double %2594, double %2611) #6 | |
%2613 = tail call double @llvm.fma.f64(double %2608, double %2609, double %2612) #6 | |
%2614 = fadd double %2599, %2613 | |
%2615 = fsub double -0.000000e+00, %2597 | |
%2616 = fmul double %2594, 5.000000e-01 | |
%2617 = tail call double @llvm.fma.f64(double %2615, double %2603, double %2616) #6 | |
%2618 = fsub double -0.000000e+00, %2594 | |
%2619 = tail call double @llvm.fma.f64(double %2617, double %2596, double %2618) #6 | |
%2620 = tail call double @llvm.fma.f64(double %2615, double 0xBFC5555555555555, double %2619) #6 | |
%2621 = fsub double %2593, %2620 | |
%2622 = and i32 %2592, 1 | |
%2623 = icmp ne i32 %2622, 0 | |
%2624 = select i1 %2623, double %2614, double %2621 | |
%2625 = bitcast double %2624 to <2 x i32> | |
%2626 = icmp ugt i32 %2595, 1 | |
%2627 = fcmp olt double %1058, 0.000000e+00 | |
%2628 = xor i1 %2627, %2626 | |
%2629 = zext i1 %2628 to i32 | |
%2630 = shl nuw i32 %2629, 31 | |
%2631 = extractelement <2 x i32> %2625, i32 1 | |
%2632 = xor i32 %2631, %2630 | |
%2633 = insertelement <2 x i32> %2625, i32 %2632, i32 1 | |
%2634 = fcmp uno double %1058, 0.000000e+00 | |
%2635 = or i1 %2634, %1370 | |
%2636 = bitcast <2 x i32> %2633 to double | |
%2637 = select i1 %2635, double 0x7FF8000000000000, double %2636 | |
%2638 = insertelement <4 x double> %2324, double %2637, i32 1 | |
br i1 %1377, label %2639, label %2670 | |
; <label>:2639: ; preds = %2591 | |
%2640 = tail call double @llvm.fma.f64(double %1376, double 0x3FE45F306DC9C883, double 5.000000e-01) #6 | |
%2641 = tail call double @llvm.trunc.f64(double %2640) #6 | |
%2642 = fmul double %2641, 0xBFF921FB54442D18 | |
%2643 = fsub double -0.000000e+00, %2642 | |
%2644 = tail call double @llvm.fma.f64(double 0xBFF921FB54442D18, double %2641, double %2643) #6 | |
%2645 = fmul double %2641, 0xBC91A62633145C06 | |
%2646 = fsub double -0.000000e+00, %2645 | |
%2647 = tail call double @llvm.fma.f64(double 0xBC91A62633145C06, double %2641, double %2646) #6 | |
%2648 = fmul double %2641, 0xB94C1CD129024E08 | |
%2649 = fsub double -0.000000e+00, %2648 | |
%2650 = tail call double @llvm.fma.f64(double 0xB94C1CD129024E08, double %2641, double %2649) #6 | |
%2651 = fadd double %2645, %2644 | |
%2652 = fsub double %2651, %2644 | |
%2653 = fsub double %2645, %2652 | |
%2654 = fadd double %2648, %2653 | |
%2655 = fadd double %2647, %2654 | |
%2656 = fadd double %2650, %2655 | |
%2657 = fadd double %2642, %2651 | |
%2658 = fsub double %2657, %2642 | |
%2659 = fsub double %2651, %2658 | |
%2660 = fadd double %2659, %2656 | |
%2661 = fsub double %2660, %2659 | |
%2662 = fsub double %2656, %2661 | |
%2663 = fadd double %1376, %2657 | |
%2664 = fadd double %2663, %2660 | |
%2665 = fsub double %2664, %2663 | |
%2666 = fsub double %2660, %2665 | |
%2667 = fadd double %2662, %2666 | |
%2668 = fptosi double %2641 to i64 | |
%2669 = trunc i64 %2668 to i32 | |
br label %2905 | |
; <label>:2670: ; preds = %2591 | |
%2671 = bitcast double %1376 to i64 | |
%2672 = lshr i64 %2671, 52 | |
%2673 = trunc i64 %2672 to i32 | |
%2674 = add nsw i32 %2673, -1023 | |
%2675 = ashr i32 %2674, 3 | |
%2676 = add nsw i32 %2675, 17 | |
%2677 = icmp slt i32 %2676, 23 | |
%2678 = select i1 %2677, i32 23, i32 %2676 | |
%2679 = sub nsw i32 150, %2678 | |
%2680 = and i32 %2679, -16 | |
%2681 = sext i32 %2680 to i64 | |
%2682 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %2681 | |
%2683 = bitcast i8 addrspace(2)* %2682 to <4 x i32> addrspace(2)* | |
%2684 = load <4 x i32>, <4 x i32> addrspace(2)* %2683, align 16, !tbaa !7 | |
%2685 = add nsw i32 %2680, 16 | |
%2686 = sext i32 %2685 to i64 | |
%2687 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %2686 | |
%2688 = bitcast i8 addrspace(2)* %2687 to <4 x i32> addrspace(2)* | |
%2689 = load <4 x i32>, <4 x i32> addrspace(2)* %2688, align 16, !tbaa !7 | |
%2690 = add nsw i32 %2680, 32 | |
%2691 = sext i32 %2690 to i64 | |
%2692 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %2691 | |
%2693 = bitcast i8 addrspace(2)* %2692 to <4 x i32> addrspace(2)* | |
%2694 = load <4 x i32>, <4 x i32> addrspace(2)* %2693, align 16, !tbaa !7 | |
%2695 = lshr i32 %2679, 2 | |
%2696 = and i32 %2695, 3 | |
%2697 = insertelement <4 x i32> undef, i32 %2696, i32 0 | |
%2698 = shufflevector <4 x i32> %2697, <4 x i32> undef, <4 x i32> zeroinitializer | |
%2699 = icmp eq <4 x i32> %2698, <i32 0, i32 1, i32 2, i32 3> | |
%2700 = sext <4 x i1> %2699 to <4 x i32> | |
%2701 = extractelement <4 x i32> %2700, i32 1 | |
%2702 = icmp ne i32 %2701, 0 | |
%2703 = extractelement <4 x i32> %2684, i32 1 | |
%2704 = extractelement <4 x i32> %2684, i32 0 | |
%2705 = select i1 %2702, i32 %2703, i32 %2704 | |
%2706 = extractelement <4 x i32> %2700, i32 2 | |
%2707 = icmp ne i32 %2706, 0 | |
%2708 = extractelement <4 x i32> %2684, i32 2 | |
%2709 = select i1 %2707, i32 %2708, i32 %2705 | |
%2710 = extractelement <4 x i32> %2700, i32 3 | |
%2711 = icmp ne i32 %2710, 0 | |
%2712 = extractelement <4 x i32> %2684, i32 3 | |
%2713 = select i1 %2711, i32 %2712, i32 %2709 | |
%2714 = select i1 %2702, i32 %2708, i32 %2703 | |
%2715 = select i1 %2707, i32 %2712, i32 %2714 | |
%2716 = extractelement <4 x i32> %2689, i32 0 | |
%2717 = select i1 %2711, i32 %2716, i32 %2715 | |
%2718 = select i1 %2702, i32 %2712, i32 %2708 | |
%2719 = select i1 %2707, i32 %2716, i32 %2718 | |
%2720 = extractelement <4 x i32> %2689, i32 1 | |
%2721 = select i1 %2711, i32 %2720, i32 %2719 | |
%2722 = select i1 %2702, i32 %2716, i32 %2712 | |
%2723 = select i1 %2707, i32 %2720, i32 %2722 | |
%2724 = extractelement <4 x i32> %2689, i32 2 | |
%2725 = select i1 %2711, i32 %2724, i32 %2723 | |
%2726 = select i1 %2702, i32 %2720, i32 %2716 | |
%2727 = select i1 %2707, i32 %2724, i32 %2726 | |
%2728 = extractelement <4 x i32> %2689, i32 3 | |
%2729 = select i1 %2711, i32 %2728, i32 %2727 | |
%2730 = select i1 %2702, i32 %2724, i32 %2720 | |
%2731 = select i1 %2707, i32 %2728, i32 %2730 | |
%2732 = extractelement <4 x i32> %2694, i32 0 | |
%2733 = select i1 %2711, i32 %2732, i32 %2731 | |
%2734 = select i1 %2702, i32 %2728, i32 %2724 | |
%2735 = select i1 %2707, i32 %2732, i32 %2734 | |
%2736 = extractelement <4 x i32> %2694, i32 1 | |
%2737 = select i1 %2711, i32 %2736, i32 %2735 | |
%2738 = zext i32 %2717 to i64 | |
%2739 = shl nuw i64 %2738, 32 | |
%2740 = zext i32 %2713 to i64 | |
%2741 = or i64 %2739, %2740 | |
%2742 = shl i32 %2679, 3 | |
%2743 = zext i32 %2742 to i64 | |
%2744 = and i64 %2743, 24 | |
%2745 = ashr i64 %2741, %2744 | |
%2746 = trunc i64 %2745 to i32 | |
%2747 = zext i32 %2721 to i64 | |
%2748 = shl nuw i64 %2747, 32 | |
%2749 = or i64 %2748, %2738 | |
%2750 = ashr i64 %2749, %2744 | |
%2751 = trunc i64 %2750 to i32 | |
%2752 = zext i32 %2725 to i64 | |
%2753 = shl nuw i64 %2752, 32 | |
%2754 = or i64 %2753, %2747 | |
%2755 = ashr i64 %2754, %2744 | |
%2756 = trunc i64 %2755 to i32 | |
%2757 = zext i32 %2729 to i64 | |
%2758 = shl nuw i64 %2757, 32 | |
%2759 = or i64 %2758, %2752 | |
%2760 = ashr i64 %2759, %2744 | |
%2761 = trunc i64 %2760 to i32 | |
%2762 = zext i32 %2733 to i64 | |
%2763 = shl nuw i64 %2762, 32 | |
%2764 = or i64 %2763, %2757 | |
%2765 = ashr i64 %2764, %2744 | |
%2766 = trunc i64 %2765 to i32 | |
%2767 = zext i32 %2737 to i64 | |
%2768 = shl nuw i64 %2767, 32 | |
%2769 = or i64 %2768, %2762 | |
%2770 = ashr i64 %2769, %2744 | |
%2771 = trunc i64 %2770 to i32 | |
%2772 = shl nsw i32 %2678, 3 | |
%2773 = or i32 %2772, 2 | |
%2774 = icmp sgt i32 %2773, 1018 | |
%2775 = select i1 %2774, double 0x3770000000000000, double 1.000000e+00 | |
%2776 = fmul double %1376, %2775 | |
%2777 = select i1 %2774, i32 136, i32 0 | |
%2778 = sub i32 %2777, %2773 | |
%2779 = shl i32 %2778, 20 | |
%2780 = add i32 %2779, 1127219200 | |
%2781 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %2780, i32 1 | |
%2782 = bitcast <2 x i32> %2781 to double | |
%2783 = insertelement <2 x i32> undef, i32 %2746, i32 0 | |
%2784 = and i32 %2751, 65535 | |
%2785 = or i32 %2784, %2780 | |
%2786 = insertelement <2 x i32> %2783, i32 %2785, i32 1 | |
%2787 = bitcast <2 x i32> %2786 to double | |
%2788 = fsub double %2787, %2782 | |
%2789 = add i32 %2779, 1177550848 | |
%2790 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %2789, i32 1 | |
%2791 = bitcast <2 x i32> %2790 to double | |
%2792 = shl i32 %2756, 16 | |
%2793 = lshr i32 %2751, 16 | |
%2794 = or i32 %2792, %2793 | |
%2795 = insertelement <2 x i32> undef, i32 %2794, i32 0 | |
%2796 = lshr i32 %2756, 16 | |
%2797 = or i32 %2796, %2789 | |
%2798 = insertelement <2 x i32> %2795, i32 %2797, i32 1 | |
%2799 = bitcast <2 x i32> %2798 to double | |
%2800 = fsub double %2799, %2791 | |
%2801 = add i32 %2779, 1227882496 | |
%2802 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %2801, i32 1 | |
%2803 = bitcast <2 x i32> %2802 to double | |
%2804 = insertelement <2 x i32> undef, i32 %2761, i32 0 | |
%2805 = and i32 %2766, 65535 | |
%2806 = or i32 %2805, %2801 | |
%2807 = insertelement <2 x i32> %2804, i32 %2806, i32 1 | |
%2808 = bitcast <2 x i32> %2807 to double | |
%2809 = fsub double %2808, %2803 | |
%2810 = add i32 %2779, 1278214144 | |
%2811 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %2810, i32 1 | |
%2812 = bitcast <2 x i32> %2811 to double | |
%2813 = shl i32 %2771, 16 | |
%2814 = lshr i32 %2766, 16 | |
%2815 = or i32 %2813, %2814 | |
%2816 = insertelement <2 x i32> undef, i32 %2815, i32 0 | |
%2817 = lshr i32 %2771, 16 | |
%2818 = or i32 %2817, %2810 | |
%2819 = insertelement <2 x i32> %2816, i32 %2818, i32 1 | |
%2820 = bitcast <2 x i32> %2819 to double | |
%2821 = fsub double %2820, %2812 | |
%2822 = fmul double %2776, %2788 | |
%2823 = fsub double -0.000000e+00, %2822 | |
%2824 = tail call double @llvm.fma.f64(double %2788, double %2776, double %2823) #6 | |
%2825 = fmul double %2776, %2800 | |
%2826 = fsub double -0.000000e+00, %2825 | |
%2827 = tail call double @llvm.fma.f64(double %2800, double %2776, double %2826) #6 | |
%2828 = fmul double %2776, %2809 | |
%2829 = fsub double -0.000000e+00, %2828 | |
%2830 = tail call double @llvm.fma.f64(double %2809, double %2776, double %2829) #6 | |
%2831 = fmul double %2776, %2821 | |
%2832 = fsub double -0.000000e+00, %2831 | |
%2833 = tail call double @llvm.fma.f64(double %2821, double %2776, double %2832) #6 | |
%2834 = fadd double %2828, %2831 | |
%2835 = fsub double %2834, %2831 | |
%2836 = fsub double %2828, %2835 | |
%2837 = fadd double %2833, %2836 | |
%2838 = fsub double %2837, %2833 | |
%2839 = fsub double %2836, %2838 | |
%2840 = fadd double %2825, %2837 | |
%2841 = fsub double %2840, %2837 | |
%2842 = fsub double %2825, %2841 | |
%2843 = fadd double %2839, %2842 | |
%2844 = fadd double %2830, %2843 | |
%2845 = fsub double %2844, %2830 | |
%2846 = fsub double %2843, %2845 | |
%2847 = fadd double %2822, %2844 | |
%2848 = fsub double %2847, %2844 | |
%2849 = fsub double %2822, %2848 | |
%2850 = fadd double %2846, %2849 | |
%2851 = fadd double %2827, %2850 | |
%2852 = fadd double %2824, %2851 | |
%2853 = fmul double %2834, 9.765625e-04 | |
%2854 = tail call double @llvm.floor.f64(double %2853) #6 | |
%2855 = fsub double %2853, %2854 | |
%2856 = tail call double @fmin(double %2855, double 0x3FEFFFFFFFFFFFFF) #7 | |
%2857 = tail call double @llvm.fabs.f64(double %2853) #3 | |
%2858 = fcmp oeq double %2857, 0x7FF0000000000000 | |
%2859 = select i1 %2858, double 0.000000e+00, double %2856 | |
%2860 = fcmp uno double %2853, 0.000000e+00 | |
%2861 = select i1 %2860, double %2853, double %2859 | |
%2862 = fmul double %2861, 1.024000e+03 | |
%2863 = fadd double %2840, %2862 | |
%2864 = fcmp olt double %2863, 0.000000e+00 | |
%2865 = select i1 %2864, double 1.024000e+03, double 0.000000e+00 | |
%2866 = fadd double %2862, %2865 | |
%2867 = fadd double %2840, %2866 | |
%2868 = tail call double @llvm.floor.f64(double %2867) #6 | |
%2869 = fsub double %2867, %2868 | |
%2870 = tail call double @fmin(double %2869, double 0x3FEFFFFFFFFFFFFF) #7 | |
%2871 = tail call double @llvm.fabs.f64(double %2867) #3 | |
%2872 = fcmp oeq double %2871, 0x7FF0000000000000 | |
%2873 = select i1 %2872, double 0.000000e+00, double %2870 | |
%2874 = fcmp uno double %2867, 0.000000e+00 | |
%2875 = select i1 %2874, double %2867, double %2873 | |
%2876 = fsub double %2867, %2875 | |
%2877 = fptrunc double %2876 to float | |
%2878 = fptosi float %2877 to i32 | |
%2879 = fsub double %2866, %2876 | |
%2880 = fadd double %2840, %2879 | |
%2881 = fsub double %2880, %2879 | |
%2882 = fsub double %2840, %2881 | |
%2883 = fadd double %2847, %2882 | |
%2884 = fsub double %2883, %2882 | |
%2885 = fsub double %2847, %2884 | |
%2886 = fadd double %2852, %2885 | |
%2887 = fcmp oge double %2880, 5.000000e-01 | |
%2888 = zext i1 %2887 to i32 | |
%2889 = add nsw i32 %2888, %2878 | |
%2890 = uitofp i1 %2887 to float | |
%2891 = fpext float %2890 to double | |
%2892 = fsub double %2880, %2891 | |
%2893 = fadd double %2883, %2892 | |
%2894 = fsub double %2893, %2892 | |
%2895 = fsub double %2883, %2894 | |
%2896 = fadd double %2886, %2895 | |
%2897 = fmul double %2893, 0x3FF921FB54442D18 | |
%2898 = fsub double -0.000000e+00, %2897 | |
%2899 = tail call double @llvm.fma.f64(double %2893, double 0x3FF921FB54442D18, double %2898) #6 | |
%2900 = tail call double @llvm.fma.f64(double %2893, double 0x3C91A62633145C06, double %2899) #6 | |
%2901 = tail call double @llvm.fma.f64(double %2896, double 0x3FF921FB54442D18, double %2900) #6 | |
%2902 = fadd double %2897, %2901 | |
%2903 = fsub double %2902, %2897 | |
%2904 = fsub double %2901, %2903 | |
br label %2905 | |
; <label>:2905: ; preds = %2670, %2639 | |
%2906 = phi i32 [ %2669, %2639 ], [ %2889, %2670 ] | |
%2907 = phi double [ %2664, %2639 ], [ %2902, %2670 ] | |
%2908 = phi double [ %2667, %2639 ], [ %2904, %2670 ] | |
%2909 = and i32 %2906, 2 | |
%2910 = fmul double %2907, %2907 | |
%2911 = fmul double %2907, %2910 | |
%2912 = fmul double %2910, 5.000000e-01 | |
%2913 = fsub double 1.000000e+00, %2912 | |
%2914 = tail call double @llvm.fma.f64(double 0x3DE5E0B2F9A43BB8, double %2910, double 0xBE5AE600B42FDFA7) #6 | |
%2915 = tail call double @llvm.fma.f64(double %2914, double %2910, double 0x3EC71DE3796CDE01) #6 | |
%2916 = tail call double @llvm.fma.f64(double %2915, double %2910, double 0xBF2A01A019E83E5C) #6 | |
%2917 = tail call double @llvm.fma.f64(double %2916, double %2910, double 0x3F81111111110BB3) #6 | |
%2918 = tail call double @llvm.fma.f64(double 0xBDA907DB46CC5E42, double %2910, double 0x3E21EEB69037AB78) #6 | |
%2919 = tail call double @llvm.fma.f64(double %2918, double %2910, double 0xBE927E4FA17F65F6) #6 | |
%2920 = tail call double @llvm.fma.f64(double %2919, double %2910, double 0x3EFA01A019F4EC90) #6 | |
%2921 = tail call double @llvm.fma.f64(double %2920, double %2910, double 0xBF56C16C16C16967) #6 | |
%2922 = tail call double @llvm.fma.f64(double %2921, double %2910, double 0x3FA5555555555555) #6 | |
%2923 = fmul double %2910, %2910 | |
%2924 = fsub double 1.000000e+00, %2913 | |
%2925 = fsub double %2924, %2912 | |
%2926 = tail call double @llvm.fma.f64(double %2907, double %2908, double %2925) #6 | |
%2927 = tail call double @llvm.fma.f64(double %2922, double %2923, double %2926) #6 | |
%2928 = fadd double %2913, %2927 | |
%2929 = fsub double -0.000000e+00, %2911 | |
%2930 = fmul double %2908, 5.000000e-01 | |
%2931 = tail call double @llvm.fma.f64(double %2929, double %2917, double %2930) #6 | |
%2932 = fsub double -0.000000e+00, %2908 | |
%2933 = tail call double @llvm.fma.f64(double %2931, double %2910, double %2932) #6 | |
%2934 = tail call double @llvm.fma.f64(double %2929, double 0xBFC5555555555555, double %2933) #6 | |
%2935 = fsub double %2907, %2934 | |
%2936 = and i32 %2906, 1 | |
%2937 = icmp ne i32 %2936, 0 | |
%2938 = select i1 %2937, double %2928, double %2935 | |
%2939 = bitcast double %2938 to <2 x i32> | |
%2940 = icmp ugt i32 %2909, 1 | |
%2941 = fcmp olt double %1375, 0.000000e+00 | |
%2942 = xor i1 %2941, %2940 | |
%2943 = zext i1 %2942 to i32 | |
%2944 = shl nuw i32 %2943, 31 | |
%2945 = extractelement <2 x i32> %2939, i32 1 | |
%2946 = xor i32 %2945, %2944 | |
%2947 = insertelement <2 x i32> %2939, i32 %2946, i32 1 | |
%2948 = fcmp uno double %1375, 0.000000e+00 | |
%2949 = or i1 %2948, %1687 | |
%2950 = bitcast <2 x i32> %2947 to double | |
%2951 = select i1 %2949, double 0x7FF8000000000000, double %2950 | |
%2952 = insertelement <4 x double> undef, double %2951, i32 0 | |
br i1 %1694, label %2953, label %2984 | |
; <label>:2953: ; preds = %2905 | |
%2954 = tail call double @llvm.fma.f64(double %1693, double 0x3FE45F306DC9C883, double 5.000000e-01) #6 | |
%2955 = tail call double @llvm.trunc.f64(double %2954) #6 | |
%2956 = fmul double %2955, 0xBFF921FB54442D18 | |
%2957 = fsub double -0.000000e+00, %2956 | |
%2958 = tail call double @llvm.fma.f64(double 0xBFF921FB54442D18, double %2955, double %2957) #6 | |
%2959 = fmul double %2955, 0xBC91A62633145C06 | |
%2960 = fsub double -0.000000e+00, %2959 | |
%2961 = tail call double @llvm.fma.f64(double 0xBC91A62633145C06, double %2955, double %2960) #6 | |
%2962 = fmul double %2955, 0xB94C1CD129024E08 | |
%2963 = fsub double -0.000000e+00, %2962 | |
%2964 = tail call double @llvm.fma.f64(double 0xB94C1CD129024E08, double %2955, double %2963) #6 | |
%2965 = fadd double %2959, %2958 | |
%2966 = fsub double %2965, %2958 | |
%2967 = fsub double %2959, %2966 | |
%2968 = fadd double %2962, %2967 | |
%2969 = fadd double %2961, %2968 | |
%2970 = fadd double %2964, %2969 | |
%2971 = fadd double %2956, %2965 | |
%2972 = fsub double %2971, %2956 | |
%2973 = fsub double %2965, %2972 | |
%2974 = fadd double %2973, %2970 | |
%2975 = fsub double %2974, %2973 | |
%2976 = fsub double %2970, %2975 | |
%2977 = fadd double %1693, %2971 | |
%2978 = fadd double %2977, %2974 | |
%2979 = fsub double %2978, %2977 | |
%2980 = fsub double %2974, %2979 | |
%2981 = fadd double %2976, %2980 | |
%2982 = fptosi double %2955 to i64 | |
%2983 = trunc i64 %2982 to i32 | |
br label %3219 | |
; <label>:2984: ; preds = %2905 | |
%2985 = bitcast double %1693 to i64 | |
%2986 = lshr i64 %2985, 52 | |
%2987 = trunc i64 %2986 to i32 | |
%2988 = add nsw i32 %2987, -1023 | |
%2989 = ashr i32 %2988, 3 | |
%2990 = add nsw i32 %2989, 17 | |
%2991 = icmp slt i32 %2990, 23 | |
%2992 = select i1 %2991, i32 23, i32 %2990 | |
%2993 = sub nsw i32 150, %2992 | |
%2994 = and i32 %2993, -16 | |
%2995 = sext i32 %2994 to i64 | |
%2996 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %2995 | |
%2997 = bitcast i8 addrspace(2)* %2996 to <4 x i32> addrspace(2)* | |
%2998 = load <4 x i32>, <4 x i32> addrspace(2)* %2997, align 16, !tbaa !7 | |
%2999 = add nsw i32 %2994, 16 | |
%3000 = sext i32 %2999 to i64 | |
%3001 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %3000 | |
%3002 = bitcast i8 addrspace(2)* %3001 to <4 x i32> addrspace(2)* | |
%3003 = load <4 x i32>, <4 x i32> addrspace(2)* %3002, align 16, !tbaa !7 | |
%3004 = add nsw i32 %2994, 32 | |
%3005 = sext i32 %3004 to i64 | |
%3006 = getelementptr inbounds [158 x i8], [158 x i8] addrspace(2)* @PIBITS_TBL, i64 0, i64 %3005 | |
%3007 = bitcast i8 addrspace(2)* %3006 to <4 x i32> addrspace(2)* | |
%3008 = load <4 x i32>, <4 x i32> addrspace(2)* %3007, align 16, !tbaa !7 | |
%3009 = lshr i32 %2993, 2 | |
%3010 = and i32 %3009, 3 | |
%3011 = insertelement <4 x i32> undef, i32 %3010, i32 0 | |
%3012 = shufflevector <4 x i32> %3011, <4 x i32> undef, <4 x i32> zeroinitializer | |
%3013 = icmp eq <4 x i32> %3012, <i32 0, i32 1, i32 2, i32 3> | |
%3014 = sext <4 x i1> %3013 to <4 x i32> | |
%3015 = extractelement <4 x i32> %3014, i32 1 | |
%3016 = icmp ne i32 %3015, 0 | |
%3017 = extractelement <4 x i32> %2998, i32 1 | |
%3018 = extractelement <4 x i32> %2998, i32 0 | |
%3019 = select i1 %3016, i32 %3017, i32 %3018 | |
%3020 = extractelement <4 x i32> %3014, i32 2 | |
%3021 = icmp ne i32 %3020, 0 | |
%3022 = extractelement <4 x i32> %2998, i32 2 | |
%3023 = select i1 %3021, i32 %3022, i32 %3019 | |
%3024 = extractelement <4 x i32> %3014, i32 3 | |
%3025 = icmp ne i32 %3024, 0 | |
%3026 = extractelement <4 x i32> %2998, i32 3 | |
%3027 = select i1 %3025, i32 %3026, i32 %3023 | |
%3028 = select i1 %3016, i32 %3022, i32 %3017 | |
%3029 = select i1 %3021, i32 %3026, i32 %3028 | |
%3030 = extractelement <4 x i32> %3003, i32 0 | |
%3031 = select i1 %3025, i32 %3030, i32 %3029 | |
%3032 = select i1 %3016, i32 %3026, i32 %3022 | |
%3033 = select i1 %3021, i32 %3030, i32 %3032 | |
%3034 = extractelement <4 x i32> %3003, i32 1 | |
%3035 = select i1 %3025, i32 %3034, i32 %3033 | |
%3036 = select i1 %3016, i32 %3030, i32 %3026 | |
%3037 = select i1 %3021, i32 %3034, i32 %3036 | |
%3038 = extractelement <4 x i32> %3003, i32 2 | |
%3039 = select i1 %3025, i32 %3038, i32 %3037 | |
%3040 = select i1 %3016, i32 %3034, i32 %3030 | |
%3041 = select i1 %3021, i32 %3038, i32 %3040 | |
%3042 = extractelement <4 x i32> %3003, i32 3 | |
%3043 = select i1 %3025, i32 %3042, i32 %3041 | |
%3044 = select i1 %3016, i32 %3038, i32 %3034 | |
%3045 = select i1 %3021, i32 %3042, i32 %3044 | |
%3046 = extractelement <4 x i32> %3008, i32 0 | |
%3047 = select i1 %3025, i32 %3046, i32 %3045 | |
%3048 = select i1 %3016, i32 %3042, i32 %3038 | |
%3049 = select i1 %3021, i32 %3046, i32 %3048 | |
%3050 = extractelement <4 x i32> %3008, i32 1 | |
%3051 = select i1 %3025, i32 %3050, i32 %3049 | |
%3052 = zext i32 %3031 to i64 | |
%3053 = shl nuw i64 %3052, 32 | |
%3054 = zext i32 %3027 to i64 | |
%3055 = or i64 %3053, %3054 | |
%3056 = shl i32 %2993, 3 | |
%3057 = zext i32 %3056 to i64 | |
%3058 = and i64 %3057, 24 | |
%3059 = ashr i64 %3055, %3058 | |
%3060 = trunc i64 %3059 to i32 | |
%3061 = zext i32 %3035 to i64 | |
%3062 = shl nuw i64 %3061, 32 | |
%3063 = or i64 %3062, %3052 | |
%3064 = ashr i64 %3063, %3058 | |
%3065 = trunc i64 %3064 to i32 | |
%3066 = zext i32 %3039 to i64 | |
%3067 = shl nuw i64 %3066, 32 | |
%3068 = or i64 %3067, %3061 | |
%3069 = ashr i64 %3068, %3058 | |
%3070 = trunc i64 %3069 to i32 | |
%3071 = zext i32 %3043 to i64 | |
%3072 = shl nuw i64 %3071, 32 | |
%3073 = or i64 %3072, %3066 | |
%3074 = ashr i64 %3073, %3058 | |
%3075 = trunc i64 %3074 to i32 | |
%3076 = zext i32 %3047 to i64 | |
%3077 = shl nuw i64 %3076, 32 | |
%3078 = or i64 %3077, %3071 | |
%3079 = ashr i64 %3078, %3058 | |
%3080 = trunc i64 %3079 to i32 | |
%3081 = zext i32 %3051 to i64 | |
%3082 = shl nuw i64 %3081, 32 | |
%3083 = or i64 %3082, %3076 | |
%3084 = ashr i64 %3083, %3058 | |
%3085 = trunc i64 %3084 to i32 | |
%3086 = shl nsw i32 %2992, 3 | |
%3087 = or i32 %3086, 2 | |
%3088 = icmp sgt i32 %3087, 1018 | |
%3089 = select i1 %3088, double 0x3770000000000000, double 1.000000e+00 | |
%3090 = fmul double %1693, %3089 | |
%3091 = select i1 %3088, i32 136, i32 0 | |
%3092 = sub i32 %3091, %3087 | |
%3093 = shl i32 %3092, 20 | |
%3094 = add i32 %3093, 1127219200 | |
%3095 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %3094, i32 1 | |
%3096 = bitcast <2 x i32> %3095 to double | |
%3097 = insertelement <2 x i32> undef, i32 %3060, i32 0 | |
%3098 = and i32 %3065, 65535 | |
%3099 = or i32 %3098, %3094 | |
%3100 = insertelement <2 x i32> %3097, i32 %3099, i32 1 | |
%3101 = bitcast <2 x i32> %3100 to double | |
%3102 = fsub double %3101, %3096 | |
%3103 = add i32 %3093, 1177550848 | |
%3104 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %3103, i32 1 | |
%3105 = bitcast <2 x i32> %3104 to double | |
%3106 = shl i32 %3070, 16 | |
%3107 = lshr i32 %3065, 16 | |
%3108 = or i32 %3106, %3107 | |
%3109 = insertelement <2 x i32> undef, i32 %3108, i32 0 | |
%3110 = lshr i32 %3070, 16 | |
%3111 = or i32 %3110, %3103 | |
%3112 = insertelement <2 x i32> %3109, i32 %3111, i32 1 | |
%3113 = bitcast <2 x i32> %3112 to double | |
%3114 = fsub double %3113, %3105 | |
%3115 = add i32 %3093, 1227882496 | |
%3116 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %3115, i32 1 | |
%3117 = bitcast <2 x i32> %3116 to double | |
%3118 = insertelement <2 x i32> undef, i32 %3075, i32 0 | |
%3119 = and i32 %3080, 65535 | |
%3120 = or i32 %3119, %3115 | |
%3121 = insertelement <2 x i32> %3118, i32 %3120, i32 1 | |
%3122 = bitcast <2 x i32> %3121 to double | |
%3123 = fsub double %3122, %3117 | |
%3124 = add i32 %3093, 1278214144 | |
%3125 = insertelement <2 x i32> <i32 0, i32 undef>, i32 %3124, i32 1 | |
%3126 = bitcast <2 x i32> %3125 to double | |
%3127 = shl i32 %3085, 16 | |
%3128 = lshr i32 %3080, 16 | |
%3129 = or i32 %3127, %3128 | |
%3130 = insertelement <2 x i32> undef, i32 %3129, i32 0 | |
%3131 = lshr i32 %3085, 16 | |
%3132 = or i32 %3131, %3124 | |
%3133 = insertelement <2 x i32> %3130, i32 %3132, i32 1 | |
%3134 = bitcast <2 x i32> %3133 to double | |
%3135 = fsub double %3134, %3126 | |
%3136 = fmul double %3090, %3102 | |
%3137 = fsub double -0.000000e+00, %3136 | |
%3138 = tail call double @llvm.fma.f64(double %3102, double %3090, double %3137) #6 | |
%3139 = fmul double %3090, %3114 | |
%3140 = fsub double -0.000000e+00, %3139 | |
%3141 = tail call double @llvm.fma.f64(double %3114, double %3090, double %3140) #6 | |
%3142 = fmul double %3090, %3123 | |
%3143 = fsub double -0.000000e+00, %3142 | |
%3144 = tail call double @llvm.fma.f64(double %3123, double %3090, double %3143) #6 | |
%3145 = fmul double %3090, %3135 | |
%3146 = fsub double -0.000000e+00, %3145 | |
%3147 = tail call double @llvm.fma.f64(double %3135, double %3090, double %3146) #6 | |
%3148 = fadd double %3142, %3145 | |
%3149 = fsub double %3148, %3145 | |
%3150 = fsub double %3142, %3149 | |
%3151 = fadd double %3147, %3150 | |
%3152 = fsub double %3151, %3147 | |
%3153 = fsub double %3150, %3152 | |
%3154 = fadd double %3139, %3151 | |
%3155 = fsub double %3154, %3151 | |
%3156 = fsub double %3139, %3155 | |
%3157 = fadd double %3153, %3156 | |
%3158 = fadd double %3144, %3157 | |
%3159 = fsub double %3158, %3144 | |
%3160 = fsub double %3157, %3159 | |
%3161 = fadd double %3136, %3158 | |
%3162 = fsub double %3161, %3158 | |
%3163 = fsub double %3136, %3162 | |
%3164 = fadd double %3160, %3163 | |
%3165 = fadd double %3141, %3164 | |
%3166 = fadd double %3138, %3165 | |
%3167 = fmul double %3148, 9.765625e-04 | |
%3168 = tail call double @llvm.floor.f64(double %3167) #6 | |
%3169 = fsub double %3167, %3168 | |
%3170 = tail call double @fmin(double %3169, double 0x3FEFFFFFFFFFFFFF) #7 | |
%3171 = tail call double @llvm.fabs.f64(double %3167) #3 | |
%3172 = fcmp oeq double %3171, 0x7FF0000000000000 | |
%3173 = select i1 %3172, double 0.000000e+00, double %3170 | |
%3174 = fcmp uno double %3167, 0.000000e+00 | |
%3175 = select i1 %3174, double %3167, double %3173 | |
%3176 = fmul double %3175, 1.024000e+03 | |
%3177 = fadd double %3154, %3176 | |
%3178 = fcmp olt double %3177, 0.000000e+00 | |
%3179 = select i1 %3178, double 1.024000e+03, double 0.000000e+00 | |
%3180 = fadd double %3176, %3179 | |
%3181 = fadd double %3154, %3180 | |
%3182 = tail call double @llvm.floor.f64(double %3181) #6 | |
%3183 = fsub double %3181, %3182 | |
%3184 = tail call double @fmin(double %3183, double 0x3FEFFFFFFFFFFFFF) #7 | |
%3185 = tail call double @llvm.fabs.f64(double %3181) #3 | |
%3186 = fcmp oeq double %3185, 0x7FF0000000000000 | |
%3187 = select i1 %3186, double 0.000000e+00, double %3184 | |
%3188 = fcmp uno double %3181, 0.000000e+00 | |
%3189 = select i1 %3188, double %3181, double %3187 | |
%3190 = fsub double %3181, %3189 | |
%3191 = fptrunc double %3190 to float | |
%3192 = fptosi float %3191 to i32 | |
%3193 = fsub double %3180, %3190 | |
%3194 = fadd double %3154, %3193 | |
%3195 = fsub double %3194, %3193 | |
%3196 = fsub double %3154, %3195 | |
%3197 = fadd double %3161, %3196 | |
%3198 = fsub double %3197, %3196 | |
%3199 = fsub double %3161, %3198 | |
%3200 = fadd double %3166, %3199 | |
%3201 = fcmp oge double %3194, 5.000000e-01 | |
%3202 = zext i1 %3201 to i32 | |
%3203 = add nsw i32 %3202, %3192 | |
%3204 = uitofp i1 %3201 to float | |
%3205 = fpext float %3204 to double | |
%3206 = fsub double %3194, %3205 | |
%3207 = fadd double %3197, %3206 | |
%3208 = fsub double %3207, %3206 | |
%3209 = fsub double %3197, %3208 | |
%3210 = fadd double %3200, %3209 | |
%3211 = fmul double %3207, 0x3FF921FB54442D18 | |
%3212 = fsub double -0.000000e+00, %3211 | |
%3213 = tail call double @llvm.fma.f64(double %3207, double 0x3FF921FB54442D18, double %3212) #6 | |
%3214 = tail call double @llvm.fma.f64(double %3207, double 0x3C91A62633145C06, double %3213) #6 | |
%3215 = tail call double @llvm.fma.f64(double %3210, double 0x3FF921FB54442D18, double %3214) #6 | |
%3216 = fadd double %3211, %3215 | |
%3217 = fsub double %3216, %3211 | |
%3218 = fsub double %3215, %3217 | |
br label %3219 | |
; <label>:3219: ; preds = %2953, %2984 | |
%3220 = phi i32 [ %2983, %2953 ], [ %3203, %2984 ] | |
%3221 = phi double [ %2978, %2953 ], [ %3216, %2984 ] | |
%3222 = phi double [ %2981, %2953 ], [ %3218, %2984 ] | |
%3223 = and i32 %3220, 2 | |
%3224 = fmul double %3221, %3221 | |
%3225 = fmul double %3221, %3224 | |
%3226 = fmul double %3224, 5.000000e-01 | |
%3227 = fsub double 1.000000e+00, %3226 | |
%3228 = tail call double @llvm.fma.f64(double 0x3DE5E0B2F9A43BB8, double %3224, double 0xBE5AE600B42FDFA7) #6 | |
%3229 = tail call double @llvm.fma.f64(double %3228, double %3224, double 0x3EC71DE3796CDE01) #6 | |
%3230 = tail call double @llvm.fma.f64(double %3229, double %3224, double 0xBF2A01A019E83E5C) #6 | |
%3231 = tail call double @llvm.fma.f64(double %3230, double %3224, double 0x3F81111111110BB3) #6 | |
%3232 = tail call double @llvm.fma.f64(double 0xBDA907DB46CC5E42, double %3224, double 0x3E21EEB69037AB78) #6 | |
%3233 = tail call double @llvm.fma.f64(double %3232, double %3224, double 0xBE927E4FA17F65F6) #6 | |
%3234 = tail call double @llvm.fma.f64(double %3233, double %3224, double 0x3EFA01A019F4EC90) #6 | |
%3235 = tail call double @llvm.fma.f64(double %3234, double %3224, double 0xBF56C16C16C16967) #6 | |
%3236 = tail call double @llvm.fma.f64(double %3235, double %3224, double 0x3FA5555555555555) #6 | |
%3237 = fmul double %3224, %3224 | |
%3238 = fsub double 1.000000e+00, %3227 | |
%3239 = fsub double %3238, %3226 | |
%3240 = tail call double @llvm.fma.f64(double %3221, double %3222, double %3239) #6 | |
%3241 = tail call double @llvm.fma.f64(double %3236, double %3237, double %3240) #6 | |
%3242 = fadd double %3227, %3241 | |
%3243 = fsub double -0.000000e+00, %3225 | |
%3244 = fmul double %3222, 5.000000e-01 | |
%3245 = tail call double @llvm.fma.f64(double %3243, double %3231, double %3244) #6 | |
%3246 = fsub double -0.000000e+00, %3222 | |
%3247 = tail call double @llvm.fma.f64(double %3245, double %3224, double %3246) #6 | |
%3248 = tail call double @llvm.fma.f64(double %3243, double 0xBFC5555555555555, double %3247) #6 | |
%3249 = fsub double %3221, %3248 | |
%3250 = and i32 %3220, 1 | |
%3251 = icmp ne i32 %3250, 0 | |
%3252 = select i1 %3251, double %3242, double %3249 | |
%3253 = bitcast double %3252 to <2 x i32> | |
%3254 = icmp ugt i32 %3223, 1 | |
%3255 = fcmp olt double %1692, 0.000000e+00 | |
%3256 = xor i1 %3255, %3254 | |
%3257 = zext i1 %3256 to i32 | |
%3258 = shl nuw i32 %3257, 31 | |
%3259 = extractelement <2 x i32> %3253, i32 1 | |
%3260 = xor i32 %3259, %3258 | |
%3261 = insertelement <2 x i32> %3253, i32 %3260, i32 1 | |
%3262 = fcmp uno double %1692, 0.000000e+00 | |
%3263 = or i1 %3262, %2004 | |
%3264 = bitcast <2 x i32> %3261 to double | |
%3265 = select i1 %3263, double 0x7FF8000000000000, double %3264 | |
%3266 = insertelement <4 x double> %2952, double %3265, i32 1 | |
%3267 = shufflevector <4 x double> %2638, <4 x double> %3266, <4 x i32> <i32 0, i32 1, i32 4, i32 5> | |
%3268 = fmul <4 x double> %739, %3267 | |
store <4 x double> %3268, <4 x double> addrspace(4)* %2, align 32, !tbaa !7 | |
%3269 = load <4 x i32>, <4 x i32>* %31, align 16, !tbaa !7 | |
store <4 x i32> %3269, <4 x i32> addrspace(4)* %3, align 16, !tbaa !7 | |
call void @llvm.lifetime.end(i64 16, i8* %10) #5 | |
call void @llvm.lifetime.end(i64 16, i8* %9) #5 | |
call void @llvm.lifetime.end(i64 128, i8* nonnull %8) #5 | |
ret void | |
} | |
; Function Attrs: norecurse nounwind | |
define void @calOutputs(<4 x double>, <4 x double>, <4 x double>, <4 x double>, <4 x double>, <4 x double> addrspace(4)* nocapture, <4 x double> addrspace(4)* nocapture, <4 x double> addrspace(4)* nocapture, <4 x double> addrspace(4)* nocapture) #0 { | |
%10 = fsub <4 x double> %3, %0 | |
%11 = fsub <4 x double> %4, %0 | |
%12 = extractelement <4 x double> %10, i32 0 | |
%13 = fcmp ogt double %12, 0.000000e+00 | |
%14 = shufflevector <4 x double> <double 0.000000e+00, double undef, double undef, double undef>, <4 x double> %10, <4 x i32> <i32 4, i32 0, i32 0, i32 0> | |
%15 = select i1 %13, <4 x double> %14, <4 x double> zeroinitializer | |
%16 = select i1 %13, <4 x double> <double 1.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00>, <4 x double> zeroinitializer | |
%17 = extractelement <4 x double> %10, i32 1 | |
%18 = fcmp ogt double %17, 0.000000e+00 | |
%19 = insertelement <4 x double> %16, double 1.000000e+00, i32 1 | |
%20 = shufflevector <4 x double> %15, <4 x double> %10, <4 x i32> <i32 0, i32 5, i32 2, i32 3> | |
%21 = select i1 %18, <4 x double> %20, <4 x double> %15 | |
%22 = select i1 %18, <4 x double> %19, <4 x double> %16 | |
%23 = extractelement <4 x double> %10, i32 2 | |
%24 = fcmp ogt double %23, 0.000000e+00 | |
%25 = insertelement <4 x double> %22, double 1.000000e+00, i32 2 | |
%26 = shufflevector <4 x double> %21, <4 x double> %10, <4 x i32> <i32 0, i32 1, i32 6, i32 3> | |
%27 = select i1 %24, <4 x double> %26, <4 x double> %21 | |
%28 = select i1 %24, <4 x double> %25, <4 x double> %22 | |
%29 = extractelement <4 x double> %10, i32 3 | |
%30 = fcmp ogt double %29, 0.000000e+00 | |
%31 = insertelement <4 x double> %28, double 1.000000e+00, i32 3 | |
%32 = shufflevector <4 x double> %27, <4 x double> %10, <4 x i32> <i32 0, i32 1, i32 2, i32 7> | |
%33 = select i1 %30, <4 x double> %32, <4 x double> %27 | |
%34 = select i1 %30, <4 x double> %31, <4 x double> %28 | |
%35 = extractelement <4 x double> %11, i32 0 | |
%36 = fcmp ogt double %35, 0.000000e+00 | |
%37 = shufflevector <4 x double> <double 0.000000e+00, double undef, double undef, double undef>, <4 x double> %11, <4 x i32> <i32 4, i32 0, i32 0, i32 0> | |
%38 = select i1 %36, <4 x double> %37, <4 x double> zeroinitializer | |
%39 = select i1 %36, <4 x double> <double 1.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00>, <4 x double> zeroinitializer | |
%40 = extractelement <4 x double> %11, i32 1 | |
%41 = fcmp ogt double %40, 0.000000e+00 | |
%42 = insertelement <4 x double> %39, double 1.000000e+00, i32 1 | |
%43 = shufflevector <4 x double> %38, <4 x double> %11, <4 x i32> <i32 0, i32 5, i32 2, i32 3> | |
%44 = select i1 %41, <4 x double> %43, <4 x double> %38 | |
%45 = select i1 %41, <4 x double> %42, <4 x double> %39 | |
%46 = extractelement <4 x double> %11, i32 2 | |
%47 = fcmp ogt double %46, 0.000000e+00 | |
%48 = insertelement <4 x double> %45, double 1.000000e+00, i32 2 | |
%49 = shufflevector <4 x double> %44, <4 x double> %11, <4 x i32> <i32 0, i32 1, i32 6, i32 3> | |
%50 = select i1 %47, <4 x double> %49, <4 x double> %44 | |
%51 = select i1 %47, <4 x double> %48, <4 x double> %45 | |
%52 = extractelement <4 x double> %11, i32 3 | |
%53 = fcmp ogt double %52, 0.000000e+00 | |
%54 = insertelement <4 x double> %51, double 1.000000e+00, i32 3 | |
%55 = shufflevector <4 x double> %50, <4 x double> %11, <4 x i32> <i32 0, i32 1, i32 2, i32 7> | |
%56 = select i1 %53, <4 x double> %55, <4 x double> %50 | |
%57 = select i1 %53, <4 x double> %54, <4 x double> %51 | |
%58 = fmul <4 x double> %34, %1 | |
store <4 x double> %58, <4 x double> addrspace(4)* %5, align 32, !tbaa !7 | |
%59 = fmul <4 x double> %57, %2 | |
store <4 x double> %59, <4 x double> addrspace(4)* %6, align 32, !tbaa !7 | |
store <4 x double> %33, <4 x double> addrspace(4)* %7, align 32, !tbaa !7 | |
store <4 x double> %56, <4 x double> addrspace(4)* %8, align 32, !tbaa !7 | |
ret void | |
} | |
; Function Attrs: nounwind | |
define void @calPriceVega(%struct._MonteCalroAttrib* byval nocapture readonly align 32, i32, i32, <4 x i32> addrspace(1)* nocapture readonly, <4 x double> addrspace(1)* nocapture, <4 x double> addrspace(1)* nocapture) #2 { | |
%7 = alloca <4 x double>, align 32 | |
%8 = alloca <4 x double>, align 32 | |
%9 = alloca <4 x i32>, align 16 | |
%10 = getelementptr inbounds %struct._MonteCalroAttrib, %struct._MonteCalroAttrib* %0, i32 0, i32 0 | |
%11 = load <4 x double>, <4 x double>* %10, align 32, !tbaa !10 | |
%12 = getelementptr inbounds %struct._MonteCalroAttrib, %struct._MonteCalroAttrib* %0, i32 0, i32 1 | |
%13 = load <4 x double>, <4 x double>* %12, align 32, !tbaa !12 | |
%14 = getelementptr inbounds %struct._MonteCalroAttrib, %struct._MonteCalroAttrib* %0, i32 0, i32 2 | |
%15 = load <4 x double>, <4 x double>* %14, align 32, !tbaa !13 | |
%16 = getelementptr inbounds %struct._MonteCalroAttrib, %struct._MonteCalroAttrib* %0, i32 0, i32 3 | |
%17 = load <4 x double>, <4 x double>* %16, align 32, !tbaa !14 | |
%18 = getelementptr inbounds %struct._MonteCalroAttrib, %struct._MonteCalroAttrib* %0, i32 0, i32 4 | |
%19 = load <4 x double>, <4 x double>* %18, align 32, !tbaa !15 | |
%20 = getelementptr inbounds %struct._MonteCalroAttrib, %struct._MonteCalroAttrib* %0, i32 0, i32 5 | |
%21 = load <4 x double>, <4 x double>* %20, align 32, !tbaa !16 | |
%22 = getelementptr inbounds %struct._MonteCalroAttrib, %struct._MonteCalroAttrib* %0, i32 0, i32 6 | |
%23 = load <4 x double>, <4 x double>* %22, align 32, !tbaa !17 | |
%24 = tail call i32 @llvm.amdgcn.workgroup.id.x() #5 | |
%25 = tail call noalias nonnull dereferenceable(64) i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #5 | |
%26 = getelementptr inbounds i8, i8 addrspace(2)* %25, i64 4 | |
%27 = bitcast i8 addrspace(2)* %26 to i32 addrspace(2)* | |
%28 = load i32, i32 addrspace(2)* %27, align 4, !invariant.load !18 | |
%29 = and i32 %28, 65535 | |
%30 = mul i32 %29, %24 | |
%31 = tail call i32 @llvm.amdgcn.workitem.id.x() #5, !range !19 | |
%32 = add i32 %30, %31 | |
%33 = tail call i32 @llvm.amdgcn.workgroup.id.y() #5 | |
%34 = lshr i32 %28, 16 | |
%35 = mul i32 %33, %34 | |
%36 = tail call i32 @llvm.amdgcn.workitem.id.y() #5, !range !19 | |
%37 = add i32 %36, %35 | |
%38 = bitcast <4 x double>* %7 to i8* | |
call void @llvm.lifetime.start(i64 32, i8* %38) #5 | |
store <4 x double> zeroinitializer, <4 x double>* %7, align 32, !tbaa !7 | |
%39 = bitcast <4 x double>* %8 to i8* | |
call void @llvm.lifetime.start(i64 32, i8* %39) #5 | |
store <4 x double> zeroinitializer, <4 x double>* %8, align 32, !tbaa !7 | |
%40 = bitcast <4 x i32>* %9 to i8* | |
call void @llvm.lifetime.start(i64 16, i8* %40) #5 | |
%41 = mul i32 %37, %2 | |
%42 = add i32 %32, %41 | |
%43 = sext i32 %42 to i64 | |
%44 = getelementptr inbounds <4 x i32>, <4 x i32> addrspace(1)* %3, i64 %43 | |
%45 = load <4 x i32>, <4 x i32> addrspace(1)* %44, align 16, !tbaa !7 | |
store <4 x i32> %45, <4 x i32>* %9, align 16, !tbaa !7 | |
%46 = icmp sgt i32 %1, 1 | |
br i1 %46, label %47, label %57 | |
; <label>:47: ; preds = %6 | |
%48 = addrspacecast <4 x double>* %7 to <4 x double> addrspace(4)* | |
%49 = addrspacecast <4 x double>* %8 to <4 x double> addrspace(4)* | |
%50 = addrspacecast <4 x i32>* %9 to <4 x i32> addrspace(4)* | |
%51 = fmul <4 x double> %17, %23 | |
br label %127 | |
; <label>:52: ; preds = %519 | |
%53 = phi <4 x double> [ %1215, %519 ] | |
%54 = phi <4 x double> [ %882, %519 ] | |
%55 = phi <4 x double> [ %545, %519 ] | |
%56 = phi <4 x double> [ %544, %519 ] | |
br label %57 | |
; <label>:57: ; preds = %52, %6 | |
%58 = phi <4 x double> [ zeroinitializer, %6 ], [ %53, %52 ] | |
%59 = phi <4 x double> [ zeroinitializer, %6 ], [ %54, %52 ] | |
%60 = phi <4 x double> [ %19, %6 ], [ %55, %52 ] | |
%61 = phi <4 x double> [ %19, %6 ], [ %56, %52 ] | |
%62 = sitofp i32 %1 to double | |
%63 = insertelement <4 x double> undef, double %62, i32 0 | |
%64 = shufflevector <4 x double> %63, <4 x double> undef, <4 x i32> zeroinitializer | |
%65 = fdiv <4 x double> %61, %64 | |
%66 = fdiv <4 x double> %60, %64 | |
%67 = fdiv <4 x double> %59, %64 | |
%68 = fdiv <4 x double> %58, %64 | |
%69 = fsub <4 x double> %65, %11 | |
%70 = fsub <4 x double> %66, %11 | |
%71 = extractelement <4 x double> %69, i32 0 | |
%72 = fcmp ogt double %71, 0.000000e+00 | |
%73 = shufflevector <4 x double> <double 0.000000e+00, double undef, double undef, double undef>, <4 x double> %69, <4 x i32> <i32 4, i32 0, i32 0, i32 0> | |
%74 = select i1 %72, <4 x double> %73, <4 x double> zeroinitializer | |
%75 = select i1 %72, <4 x double> <double 1.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00>, <4 x double> zeroinitializer | |
%76 = extractelement <4 x double> %69, i32 1 | |
%77 = fcmp ogt double %76, 0.000000e+00 | |
%78 = insertelement <4 x double> %75, double 1.000000e+00, i32 1 | |
%79 = shufflevector <4 x double> %74, <4 x double> %69, <4 x i32> <i32 0, i32 5, i32 2, i32 3> | |
%80 = select i1 %77, <4 x double> %79, <4 x double> %74 | |
%81 = select i1 %77, <4 x double> %78, <4 x double> %75 | |
%82 = extractelement <4 x double> %69, i32 2 | |
%83 = fcmp ogt double %82, 0.000000e+00 | |
%84 = insertelement <4 x double> %81, double 1.000000e+00, i32 2 | |
%85 = shufflevector <4 x double> %80, <4 x double> %69, <4 x i32> <i32 0, i32 1, i32 6, i32 3> | |
%86 = select i1 %83, <4 x double> %85, <4 x double> %80 | |
%87 = select i1 %83, <4 x double> %84, <4 x double> %81 | |
%88 = extractelement <4 x double> %69, i32 3 | |
%89 = fcmp ogt double %88, 0.000000e+00 | |
%90 = insertelement <4 x double> %87, double 1.000000e+00, i32 3 | |
%91 = shufflevector <4 x double> %86, <4 x double> %69, <4 x i32> <i32 0, i32 1, i32 2, i32 7> | |
%92 = select i1 %89, <4 x double> %91, <4 x double> %86 | |
%93 = select i1 %89, <4 x double> %90, <4 x double> %87 | |
%94 = extractelement <4 x double> %70, i32 0 | |
%95 = fcmp ogt double %94, 0.000000e+00 | |
%96 = shufflevector <4 x double> <double 0.000000e+00, double undef, double undef, double undef>, <4 x double> %70, <4 x i32> <i32 4, i32 0, i32 0, i32 0> | |
%97 = select i1 %95, <4 x double> %96, <4 x double> zeroinitializer | |
%98 = select i1 %95, <4 x double> <double 1.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00>, <4 x double> zeroinitializer | |
%99 = extractelement <4 x double> %70, i32 1 | |
%100 = fcmp ogt double %99, 0.000000e+00 | |
%101 = insertelement <4 x double> %98, double 1.000000e+00, i32 1 | |
%102 = shufflevector <4 x double> %97, <4 x double> %70, <4 x i32> <i32 0, i32 5, i32 2, i32 3> | |
%103 = select i1 %100, <4 x double> %102, <4 x double> %97 | |
%104 = select i1 %100, <4 x double> %101, <4 x double> %98 | |
%105 = extractelement <4 x double> %70, i32 2 | |
%106 = fcmp ogt double %105, 0.000000e+00 | |
%107 = insertelement <4 x double> %104, double 1.000000e+00, i32 2 | |
%108 = shufflevector <4 x double> %103, <4 x double> %70, <4 x i32> <i32 0, i32 1, i32 6, i32 3> | |
%109 = select i1 %106, <4 x double> %108, <4 x double> %103 | |
%110 = select i1 %106, <4 x double> %107, <4 x double> %104 | |
%111 = extractelement <4 x double> %70, i32 3 | |
%112 = fcmp ogt double %111, 0.000000e+00 | |
%113 = insertelement <4 x double> %110, double 1.000000e+00, i32 3 | |
%114 = shufflevector <4 x double> %109, <4 x double> %70, <4 x i32> <i32 0, i32 1, i32 2, i32 7> | |
%115 = select i1 %112, <4 x double> %114, <4 x double> %109 | |
%116 = select i1 %112, <4 x double> %113, <4 x double> %110 | |
%117 = fmul <4 x double> %67, %93 | |
%118 = fmul <4 x double> %68, %116 | |
%119 = shl i32 %42, 1 | |
%120 = sext i32 %119 to i64 | |
%121 = getelementptr inbounds <4 x double>, <4 x double> addrspace(1)* %4, i64 %120 | |
store <4 x double> %92, <4 x double> addrspace(1)* %121, align 32, !tbaa !7 | |
%122 = or i32 %119, 1 | |
%123 = sext i32 %122 to i64 | |
%124 = getelementptr inbounds <4 x double>, <4 x double> addrspace(1)* %4, i64 %123 | |
store <4 x double> %115, <4 x double> addrspace(1)* %124, align 32, !tbaa !7 | |
%125 = getelementptr inbounds <4 x double>, <4 x double> addrspace(1)* %5, i64 %120 | |
store <4 x double> %117, <4 x double> addrspace(1)* %125, align 32, !tbaa !7 | |
%126 = getelementptr inbounds <4 x double>, <4 x double> addrspace(1)* %5, i64 %123 | |
store <4 x double> %118, <4 x double> addrspace(1)* %126, align 32, !tbaa !7 | |
call void @llvm.lifetime.end(i64 16, i8* %40) #5 | |
call void @llvm.lifetime.end(i64 32, i8* %39) #5 | |
call void @llvm.lifetime.end(i64 32, i8* %38) #5 | |
ret void | |
; <label>:127: ; preds = %1218, %47 | |
%128 = phi <4 x i32> [ %45, %47 ], [ %1219, %1218 ] | |
%129 = phi i32 [ 1, %47 ], [ %1216, %1218 ] | |
%130 = phi <4 x double> [ zeroinitializer, %47 ], [ %1215, %1218 ] | |
%131 = phi <4 x double> [ zeroinitializer, %47 ], [ %882, %1218 ] | |
%132 = phi <4 x double> [ %19, %47 ], [ %545, %1218 ] | |
%133 = phi <4 x double> [ %19, %47 ], [ %544, %1218 ] | |
%134 = phi <4 x double> [ %19, %47 ], [ %543, %1218 ] | |
%135 = phi <4 x double> [ %19, %47 ], [ %339, %1218 ] | |
call void @generateRand(<4 x i32> %128, <4 x double> addrspace(4)* %48, <4 x double> addrspace(4)* %49, <4 x i32> addrspace(4)* %50) | |
%136 = load <4 x double>, <4 x double>* %7, align 32, !tbaa !7 | |
%137 = tail call <4 x double> @llvm.fmuladd.v4f64(<4 x double> %15, <4 x double> %136, <4 x double> %13) | |
%138 = extractelement <4 x double> %137, i32 0 | |
%139 = fmul double %138, 0x40571547652B82FE | |
%140 = fptosi double %139 to i32 | |
%141 = sitofp i32 %140 to double | |
%142 = tail call double @llvm.fma.f64(double 0xBF862E42FEFA0000, double %141, double %138) #6 | |
%143 = tail call double @llvm.fma.f64(double 0xBD1CF79ABC9E3B39, double %141, double %142) #6 | |
%144 = and i32 %140, 63 | |
%145 = ashr i32 %140, 6 | |
%146 = tail call double @llvm.fma.f64(double %143, double 0x3F56C16C16C16C17, double 0x3F81111111111111) #6 | |
%147 = tail call double @llvm.fma.f64(double %143, double %146, double 0x3FA5555555555555) #6 | |
%148 = tail call double @llvm.fma.f64(double %143, double %147, double 0x3FC5555555555555) #6 | |
%149 = tail call double @llvm.fma.f64(double %143, double %148, double 5.000000e-01) #6 | |
%150 = tail call double @llvm.fma.f64(double %143, double %149, double 1.000000e+00) #6 | |
%151 = fmul double %143, %150 | |
%152 = zext i32 %144 to i64 | |
%153 = getelementptr inbounds [64 x <2 x double>], [64 x <2 x double>] addrspace(2)* @TWO_TO_JBY64_EP, i64 0, i64 %152 | |
%154 = load <2 x double>, <2 x double> addrspace(2)* %153, align 16, !tbaa !7 | |
%155 = extractelement <2 x double> %154, i32 0 | |
%156 = extractelement <2 x double> %154, i32 1 | |
%157 = fadd double %155, %156 | |
%158 = tail call double @llvm.fma.f64(double %157, double %151, double %156) #6 | |
%159 = fadd double %155, %158 | |
%160 = icmp slt i32 %145, -1022 | |
br i1 %160, label %165, label %161 | |
; <label>:161: ; preds = %127 | |
%162 = icmp eq i32 %145, -1022 | |
%163 = fcmp olt double %159, 1.000000e+00 | |
%164 = and i1 %162, %163 | |
br label %165 | |
; <label>:165: ; preds = %161, %127 | |
%166 = phi i1 [ true, %127 ], [ %164, %161 ] | |
%167 = ashr i32 %140, 8 | |
%168 = add nsw i32 %167, 1023 | |
%169 = zext i32 %168 to i64 | |
%170 = shl i64 %169, 52 | |
%171 = bitcast i64 %170 to double | |
%172 = fmul double %171, %159 | |
%173 = sub nsw i32 1023, %167 | |
%174 = add nsw i32 %173, %145 | |
%175 = zext i32 %174 to i64 | |
%176 = shl i64 %175, 52 | |
%177 = bitcast i64 %176 to double | |
%178 = fmul double %177, %172 | |
%179 = tail call double @llvm.amdgcn.ldexp.f64(double %159, i32 %145) #5 | |
%180 = select i1 %166, double %178, double %179 | |
%181 = fcmp uno double %138, 0.000000e+00 | |
%182 = select i1 %181, double %138, double %180 | |
%183 = fcmp ogt double %138, 0x40862E42FEFA39EF | |
%184 = select i1 %183, double 0x7FF0000000000000, double %182 | |
%185 = fcmp olt double %138, 0xC0874910D52D3051 | |
%186 = select i1 %185, double 0.000000e+00, double %184 | |
%187 = insertelement <4 x double> undef, double %186, i32 0 | |
%188 = extractelement <4 x double> %137, i32 1 | |
%189 = fmul double %188, 0x40571547652B82FE | |
%190 = fptosi double %189 to i32 | |
%191 = sitofp i32 %190 to double | |
%192 = tail call double @llvm.fma.f64(double 0xBF862E42FEFA0000, double %191, double %188) #6 | |
%193 = tail call double @llvm.fma.f64(double 0xBD1CF79ABC9E3B39, double %191, double %192) #6 | |
%194 = and i32 %190, 63 | |
%195 = ashr i32 %190, 6 | |
%196 = tail call double @llvm.fma.f64(double %193, double 0x3F56C16C16C16C17, double 0x3F81111111111111) #6 | |
%197 = tail call double @llvm.fma.f64(double %193, double %196, double 0x3FA5555555555555) #6 | |
%198 = tail call double @llvm.fma.f64(double %193, double %197, double 0x3FC5555555555555) #6 | |
%199 = tail call double @llvm.fma.f64(double %193, double %198, double 5.000000e-01) #6 | |
%200 = tail call double @llvm.fma.f64(double %193, double %199, double 1.000000e+00) #6 | |
%201 = fmul double %193, %200 | |
%202 = zext i32 %194 to i64 | |
%203 = getelementptr inbounds [64 x <2 x double>], [64 x <2 x double>] addrspace(2)* @TWO_TO_JBY64_EP, i64 0, i64 %202 | |
%204 = load <2 x double>, <2 x double> addrspace(2)* %203, align 16, !tbaa !7 | |
%205 = extractelement <2 x double> %204, i32 0 | |
%206 = extractelement <2 x double> %204, i32 1 | |
%207 = fadd double %205, %206 | |
%208 = tail call double @llvm.fma.f64(double %207, double %201, double %206) #6 | |
%209 = fadd double %205, %208 | |
%210 = icmp slt i32 %195, -1022 | |
br i1 %210, label %215, label %211 | |
; <label>:211: ; preds = %165 | |
%212 = icmp eq i32 %195, -1022 | |
%213 = fcmp olt double %209, 1.000000e+00 | |
%214 = and i1 %212, %213 | |
br label %215 | |
; <label>:215: ; preds = %211, %165 | |
%216 = phi i1 [ true, %165 ], [ %214, %211 ] | |
%217 = ashr i32 %190, 8 | |
%218 = add nsw i32 %217, 1023 | |
%219 = zext i32 %218 to i64 | |
%220 = shl i64 %219, 52 | |
%221 = bitcast i64 %220 to double | |
%222 = fmul double %221, %209 | |
%223 = sub nsw i32 1023, %217 | |
%224 = add nsw i32 %223, %195 | |
%225 = zext i32 %224 to i64 | |
%226 = shl i64 %225, 52 | |
%227 = bitcast i64 %226 to double | |
%228 = fmul double %227, %222 | |
%229 = tail call double @llvm.amdgcn.ldexp.f64(double %209, i32 %195) #5 | |
%230 = select i1 %216, double %228, double %229 | |
%231 = fcmp uno double %188, 0.000000e+00 | |
%232 = select i1 %231, double %188, double %230 | |
%233 = fcmp ogt double %188, 0x40862E42FEFA39EF | |
%234 = select i1 %233, double 0x7FF0000000000000, double %232 | |
%235 = fcmp olt double %188, 0xC0874910D52D3051 | |
%236 = select i1 %235, double 0.000000e+00, double %234 | |
%237 = insertelement <4 x double> %187, double %236, i32 1 | |
%238 = extractelement <4 x double> %137, i32 2 | |
%239 = fmul double %238, 0x40571547652B82FE | |
%240 = fptosi double %239 to i32 | |
%241 = sitofp i32 %240 to double | |
%242 = tail call double @llvm.fma.f64(double 0xBF862E42FEFA0000, double %241, double %238) #6 | |
%243 = tail call double @llvm.fma.f64(double 0xBD1CF79ABC9E3B39, double %241, double %242) #6 | |
%244 = and i32 %240, 63 | |
%245 = ashr i32 %240, 6 | |
%246 = tail call double @llvm.fma.f64(double %243, double 0x3F56C16C16C16C17, double 0x3F81111111111111) #6 | |
%247 = tail call double @llvm.fma.f64(double %243, double %246, double 0x3FA5555555555555) #6 | |
%248 = tail call double @llvm.fma.f64(double %243, double %247, double 0x3FC5555555555555) #6 | |
%249 = tail call double @llvm.fma.f64(double %243, double %248, double 5.000000e-01) #6 | |
%250 = tail call double @llvm.fma.f64(double %243, double %249, double 1.000000e+00) #6 | |
%251 = fmul double %243, %250 | |
%252 = zext i32 %244 to i64 | |
%253 = getelementptr inbounds [64 x <2 x double>], [64 x <2 x double>] addrspace(2)* @TWO_TO_JBY64_EP, i64 0, i64 %252 | |
%254 = load <2 x double>, <2 x double> addrspace(2)* %253, align 16, !tbaa !7 | |
%255 = extractelement <2 x double> %254, i32 0 | |
%256 = extractelement <2 x double> %254, i32 1 | |
%257 = fadd double %255, %256 | |
%258 = tail call double @llvm.fma.f64(double %257, double %251, double %256) #6 | |
%259 = fadd double %255, %258 | |
%260 = icmp slt i32 %245, -1022 | |
br i1 %260, label %265, label %261 | |
; <label>:261: ; preds = %215 | |
%262 = icmp eq i32 %245, -1022 | |
%263 = fcmp olt double %259, 1.000000e+00 | |
%264 = and i1 %262, %263 | |
br label %265 | |
; <label>:265: ; preds = %261, %215 | |
%266 = phi i1 [ true, %215 ], [ %264, %261 ] | |
%267 = ashr i32 %240, 8 | |
%268 = add nsw i32 %267, 1023 | |
%269 = zext i32 %268 to i64 | |
%270 = shl i64 %269, 52 | |
%271 = bitcast i64 %270 to double | |
%272 = fmul double %271, %259 | |
%273 = sub nsw i32 1023, %267 | |
%274 = add nsw i32 %273, %245 | |
%275 = zext i32 %274 to i64 | |
%276 = shl i64 %275, 52 | |
%277 = bitcast i64 %276 to double | |
%278 = fmul double %277, %272 | |
%279 = tail call double @llvm.amdgcn.ldexp.f64(double %259, i32 %245) #5 | |
%280 = select i1 %266, double %278, double %279 | |
%281 = fcmp uno double %238, 0.000000e+00 | |
%282 = select i1 %281, double %238, double %280 | |
%283 = fcmp ogt double %238, 0x40862E42FEFA39EF | |
%284 = select i1 %283, double 0x7FF0000000000000, double %282 | |
%285 = fcmp olt double %238, 0xC0874910D52D3051 | |
%286 = select i1 %285, double 0.000000e+00, double %284 | |
%287 = insertelement <4 x double> undef, double %286, i32 0 | |
%288 = extractelement <4 x double> %137, i32 3 | |
%289 = fmul double %288, 0x40571547652B82FE | |
%290 = fptosi double %289 to i32 | |
%291 = sitofp i32 %290 to double | |
%292 = tail call double @llvm.fma.f64(double 0xBF862E42FEFA0000, double %291, double %288) #6 | |
%293 = tail call double @llvm.fma.f64(double 0xBD1CF79ABC9E3B39, double %291, double %292) #6 | |
%294 = and i32 %290, 63 | |
%295 = ashr i32 %290, 6 | |
%296 = tail call double @llvm.fma.f64(double %293, double 0x3F56C16C16C16C17, double 0x3F81111111111111) #6 | |
%297 = tail call double @llvm.fma.f64(double %293, double %296, double 0x3FA5555555555555) #6 | |
%298 = tail call double @llvm.fma.f64(double %293, double %297, double 0x3FC5555555555555) #6 | |
%299 = tail call double @llvm.fma.f64(double %293, double %298, double 5.000000e-01) #6 | |
%300 = tail call double @llvm.fma.f64(double %293, double %299, double 1.000000e+00) #6 | |
%301 = fmul double %293, %300 | |
%302 = zext i32 %294 to i64 | |
%303 = getelementptr inbounds [64 x <2 x double>], [64 x <2 x double>] addrspace(2)* @TWO_TO_JBY64_EP, i64 0, i64 %302 | |
%304 = load <2 x double>, <2 x double> addrspace(2)* %303, align 16, !tbaa !7 | |
%305 = extractelement <2 x double> %304, i32 0 | |
%306 = extractelement <2 x double> %304, i32 1 | |
%307 = fadd double %305, %306 | |
%308 = tail call double @llvm.fma.f64(double %307, double %301, double %306) #6 | |
%309 = fadd double %305, %308 | |
%310 = icmp slt i32 %295, -1022 | |
br i1 %310, label %315, label %311 | |
; <label>:311: ; preds = %265 | |
%312 = icmp eq i32 %295, -1022 | |
%313 = fcmp olt double %309, 1.000000e+00 | |
%314 = and i1 %312, %313 | |
br label %315 | |
; <label>:315: ; preds = %265, %311 | |
%316 = phi i1 [ true, %265 ], [ %314, %311 ] | |
%317 = ashr i32 %290, 8 | |
%318 = add nsw i32 %317, 1023 | |
%319 = zext i32 %318 to i64 | |
%320 = shl i64 %319, 52 | |
%321 = bitcast i64 %320 to double | |
%322 = fmul double %321, %309 | |
%323 = sub nsw i32 1023, %317 | |
%324 = add nsw i32 %323, %295 | |
%325 = zext i32 %324 to i64 | |
%326 = shl i64 %325, 52 | |
%327 = bitcast i64 %326 to double | |
%328 = fmul double %327, %322 | |
%329 = tail call double @llvm.amdgcn.ldexp.f64(double %309, i32 %295) #5 | |
%330 = select i1 %316, double %328, double %329 | |
%331 = fcmp uno double %288, 0.000000e+00 | |
%332 = select i1 %331, double %288, double %330 | |
%333 = fcmp ogt double %288, 0x40862E42FEFA39EF | |
%334 = select i1 %333, double 0x7FF0000000000000, double %332 | |
%335 = fcmp olt double %288, 0xC0874910D52D3051 | |
%336 = select i1 %335, double 0.000000e+00, double %334 | |
%337 = insertelement <4 x double> %287, double %336, i32 1 | |
%338 = shufflevector <4 x double> %237, <4 x double> %337, <4 x i32> <i32 0, i32 1, i32 4, i32 5> | |
%339 = fmul <4 x double> %135, %338 | |
%340 = load <4 x double>, <4 x double>* %8, align 32, !tbaa !7 | |
%341 = tail call <4 x double> @llvm.fmuladd.v4f64(<4 x double> %15, <4 x double> %340, <4 x double> %13) | |
%342 = extractelement <4 x double> %341, i32 0 | |
%343 = fmul double %342, 0x40571547652B82FE | |
%344 = fptosi double %343 to i32 | |
%345 = sitofp i32 %344 to double | |
%346 = tail call double @llvm.fma.f64(double 0xBF862E42FEFA0000, double %345, double %342) #6 | |
%347 = tail call double @llvm.fma.f64(double 0xBD1CF79ABC9E3B39, double %345, double %346) #6 | |
%348 = and i32 %344, 63 | |
%349 = ashr i32 %344, 6 | |
%350 = tail call double @llvm.fma.f64(double %347, double 0x3F56C16C16C16C17, double 0x3F81111111111111) #6 | |
%351 = tail call double @llvm.fma.f64(double %347, double %350, double 0x3FA5555555555555) #6 | |
%352 = tail call double @llvm.fma.f64(double %347, double %351, double 0x3FC5555555555555) #6 | |
%353 = tail call double @llvm.fma.f64(double %347, double %352, double 5.000000e-01) #6 | |
%354 = tail call double @llvm.fma.f64(double %347, double %353, double 1.000000e+00) #6 | |
%355 = fmul double %347, %354 | |
%356 = zext i32 %348 to i64 | |
%357 = getelementptr inbounds [64 x <2 x double>], [64 x <2 x double>] addrspace(2)* @TWO_TO_JBY64_EP, i64 0, i64 %356 | |
%358 = load <2 x double>, <2 x double> addrspace(2)* %357, align 16, !tbaa !7 | |
%359 = extractelement <2 x double> %358, i32 0 | |
%360 = extractelement <2 x double> %358, i32 1 | |
%361 = fadd double %359, %360 | |
%362 = tail call double @llvm.fma.f64(double %361, double %355, double %360) #6 | |
%363 = fadd double %359, %362 | |
%364 = icmp slt i32 %349, -1022 | |
br i1 %364, label %369, label %365 | |
; <label>:365: ; preds = %315 | |
%366 = icmp eq i32 %349, -1022 | |
%367 = fcmp olt double %363, 1.000000e+00 | |
%368 = and i1 %366, %367 | |
br label %369 | |
; <label>:369: ; preds = %365, %315 | |
%370 = phi i1 [ true, %315 ], [ %368, %365 ] | |
%371 = ashr i32 %344, 8 | |
%372 = add nsw i32 %371, 1023 | |
%373 = zext i32 %372 to i64 | |
%374 = shl i64 %373, 52 | |
%375 = bitcast i64 %374 to double | |
%376 = fmul double %375, %363 | |
%377 = sub nsw i32 1023, %371 | |
%378 = add nsw i32 %377, %349 | |
%379 = zext i32 %378 to i64 | |
%380 = shl i64 %379, 52 | |
%381 = bitcast i64 %380 to double | |
%382 = fmul double %381, %376 | |
%383 = tail call double @llvm.amdgcn.ldexp.f64(double %363, i32 %349) #5 | |
%384 = select i1 %370, double %382, double %383 | |
%385 = fcmp uno double %342, 0.000000e+00 | |
%386 = select i1 %385, double %342, double %384 | |
%387 = fcmp ogt double %342, 0x40862E42FEFA39EF | |
%388 = select i1 %387, double 0x7FF0000000000000, double %386 | |
%389 = fcmp olt double %342, 0xC0874910D52D3051 | |
%390 = select i1 %389, double 0.000000e+00, double %388 | |
%391 = insertelement <4 x double> undef, double %390, i32 0 | |
%392 = extractelement <4 x double> %341, i32 1 | |
%393 = fmul double %392, 0x40571547652B82FE | |
%394 = fptosi double %393 to i32 | |
%395 = sitofp i32 %394 to double | |
%396 = tail call double @llvm.fma.f64(double 0xBF862E42FEFA0000, double %395, double %392) #6 | |
%397 = tail call double @llvm.fma.f64(double 0xBD1CF79ABC9E3B39, double %395, double %396) #6 | |
%398 = and i32 %394, 63 | |
%399 = ashr i32 %394, 6 | |
%400 = tail call double @llvm.fma.f64(double %397, double 0x3F56C16C16C16C17, double 0x3F81111111111111) #6 | |
%401 = tail call double @llvm.fma.f64(double %397, double %400, double 0x3FA5555555555555) #6 | |
%402 = tail call double @llvm.fma.f64(double %397, double %401, double 0x3FC5555555555555) #6 | |
%403 = tail call double @llvm.fma.f64(double %397, double %402, double 5.000000e-01) #6 | |
%404 = tail call double @llvm.fma.f64(double %397, double %403, double 1.000000e+00) #6 | |
%405 = fmul double %397, %404 | |
%406 = zext i32 %398 to i64 | |
%407 = getelementptr inbounds [64 x <2 x double>], [64 x <2 x double>] addrspace(2)* @TWO_TO_JBY64_EP, i64 0, i64 %406 | |
%408 = load <2 x double>, <2 x double> addrspace(2)* %407, align 16, !tbaa !7 | |
%409 = extractelement <2 x double> %408, i32 0 | |
%410 = extractelement <2 x double> %408, i32 1 | |
%411 = fadd double %409, %410 | |
%412 = tail call double @llvm.fma.f64(double %411, double %405, double %410) #6 | |
%413 = fadd double %409, %412 | |
%414 = icmp slt i32 %399, -1022 | |
br i1 %414, label %419, label %415 | |
; <label>:415: ; preds = %369 | |
%416 = icmp eq i32 %399, -1022 | |
%417 = fcmp olt double %413, 1.000000e+00 | |
%418 = and i1 %416, %417 | |
br label %419 | |
; <label>:419: ; preds = %415, %369 | |
%420 = phi i1 [ true, %369 ], [ %418, %415 ] | |
%421 = ashr i32 %394, 8 | |
%422 = add nsw i32 %421, 1023 | |
%423 = zext i32 %422 to i64 | |
%424 = shl i64 %423, 52 | |
%425 = bitcast i64 %424 to double | |
%426 = fmul double %425, %413 | |
%427 = sub nsw i32 1023, %421 | |
%428 = add nsw i32 %427, %399 | |
%429 = zext i32 %428 to i64 | |
%430 = shl i64 %429, 52 | |
%431 = bitcast i64 %430 to double | |
%432 = fmul double %431, %426 | |
%433 = tail call double @llvm.amdgcn.ldexp.f64(double %413, i32 %399) #5 | |
%434 = select i1 %420, double %432, double %433 | |
%435 = fcmp uno double %392, 0.000000e+00 | |
%436 = select i1 %435, double %392, double %434 | |
%437 = fcmp ogt double %392, 0x40862E42FEFA39EF | |
%438 = select i1 %437, double 0x7FF0000000000000, double %436 | |
%439 = fcmp olt double %392, 0xC0874910D52D3051 | |
%440 = select i1 %439, double 0.000000e+00, double %438 | |
%441 = insertelement <4 x double> %391, double %440, i32 1 | |
%442 = extractelement <4 x double> %341, i32 2 | |
%443 = fmul double %442, 0x40571547652B82FE | |
%444 = fptosi double %443 to i32 | |
%445 = sitofp i32 %444 to double | |
%446 = tail call double @llvm.fma.f64(double 0xBF862E42FEFA0000, double %445, double %442) #6 | |
%447 = tail call double @llvm.fma.f64(double 0xBD1CF79ABC9E3B39, double %445, double %446) #6 | |
%448 = and i32 %444, 63 | |
%449 = ashr i32 %444, 6 | |
%450 = tail call double @llvm.fma.f64(double %447, double 0x3F56C16C16C16C17, double 0x3F81111111111111) #6 | |
%451 = tail call double @llvm.fma.f64(double %447, double %450, double 0x3FA5555555555555) #6 | |
%452 = tail call double @llvm.fma.f64(double %447, double %451, double 0x3FC5555555555555) #6 | |
%453 = tail call double @llvm.fma.f64(double %447, double %452, double 5.000000e-01) #6 | |
%454 = tail call double @llvm.fma.f64(double %447, double %453, double 1.000000e+00) #6 | |
%455 = fmul double %447, %454 | |
%456 = zext i32 %448 to i64 | |
%457 = getelementptr inbounds [64 x <2 x double>], [64 x <2 x double>] addrspace(2)* @TWO_TO_JBY64_EP, i64 0, i64 %456 | |
%458 = load <2 x double>, <2 x double> addrspace(2)* %457, align 16, !tbaa !7 | |
%459 = extractelement <2 x double> %458, i32 0 | |
%460 = extractelement <2 x double> %458, i32 1 | |
%461 = fadd double %459, %460 | |
%462 = tail call double @llvm.fma.f64(double %461, double %455, double %460) #6 | |
%463 = fadd double %459, %462 | |
%464 = icmp slt i32 %449, -1022 | |
br i1 %464, label %469, label %465 | |
; <label>:465: ; preds = %419 | |
%466 = icmp eq i32 %449, -1022 | |
%467 = fcmp olt double %463, 1.000000e+00 | |
%468 = and i1 %466, %467 | |
br label %469 | |
; <label>:469: ; preds = %465, %419 | |
%470 = phi i1 [ true, %419 ], [ %468, %465 ] | |
%471 = ashr i32 %444, 8 | |
%472 = add nsw i32 %471, 1023 | |
%473 = zext i32 %472 to i64 | |
%474 = shl i64 %473, 52 | |
%475 = bitcast i64 %474 to double | |
%476 = fmul double %475, %463 | |
%477 = sub nsw i32 1023, %471 | |
%478 = add nsw i32 %477, %449 | |
%479 = zext i32 %478 to i64 | |
%480 = shl i64 %479, 52 | |
%481 = bitcast i64 %480 to double | |
%482 = fmul double %481, %476 | |
%483 = tail call double @llvm.amdgcn.ldexp.f64(double %463, i32 %449) #5 | |
%484 = select i1 %470, double %482, double %483 | |
%485 = fcmp uno double %442, 0.000000e+00 | |
%486 = select i1 %485, double %442, double %484 | |
%487 = fcmp ogt double %442, 0x40862E42FEFA39EF | |
%488 = select i1 %487, double 0x7FF0000000000000, double %486 | |
%489 = fcmp olt double %442, 0xC0874910D52D3051 | |
%490 = select i1 %489, double 0.000000e+00, double %488 | |
%491 = insertelement <4 x double> undef, double %490, i32 0 | |
%492 = extractelement <4 x double> %341, i32 3 | |
%493 = fmul double %492, 0x40571547652B82FE | |
%494 = fptosi double %493 to i32 | |
%495 = sitofp i32 %494 to double | |
%496 = tail call double @llvm.fma.f64(double 0xBF862E42FEFA0000, double %495, double %492) #6 | |
%497 = tail call double @llvm.fma.f64(double 0xBD1CF79ABC9E3B39, double %495, double %496) #6 | |
%498 = and i32 %494, 63 | |
%499 = ashr i32 %494, 6 | |
%500 = tail call double @llvm.fma.f64(double %497, double 0x3F56C16C16C16C17, double 0x3F81111111111111) #6 | |
%501 = tail call double @llvm.fma.f64(double %497, double %500, double 0x3FA5555555555555) #6 | |
%502 = tail call double @llvm.fma.f64(double %497, double %501, double 0x3FC5555555555555) #6 | |
%503 = tail call double @llvm.fma.f64(double %497, double %502, double 5.000000e-01) #6 | |
%504 = tail call double @llvm.fma.f64(double %497, double %503, double 1.000000e+00) #6 | |
%505 = fmul double %497, %504 | |
%506 = zext i32 %498 to i64 | |
%507 = getelementptr inbounds [64 x <2 x double>], [64 x <2 x double>] addrspace(2)* @TWO_TO_JBY64_EP, i64 0, i64 %506 | |
%508 = load <2 x double>, <2 x double> addrspace(2)* %507, align 16, !tbaa !7 | |
%509 = extractelement <2 x double> %508, i32 0 | |
%510 = extractelement <2 x double> %508, i32 1 | |
%511 = fadd double %509, %510 | |
%512 = tail call double @llvm.fma.f64(double %511, double %505, double %510) #6 | |
%513 = fadd double %509, %512 | |
%514 = icmp slt i32 %499, -1022 | |
br i1 %514, label %519, label %515 | |
; <label>:515: ; preds = %469 | |
%516 = icmp eq i32 %499, -1022 | |
%517 = fcmp olt double %513, 1.000000e+00 | |
%518 = and i1 %516, %517 | |
br label %519 | |
; <label>:519: ; preds = %469, %515 | |
%520 = phi i1 [ true, %469 ], [ %518, %515 ] | |
%521 = ashr i32 %494, 8 | |
%522 = add nsw i32 %521, 1023 | |
%523 = zext i32 %522 to i64 | |
%524 = shl i64 %523, 52 | |
%525 = bitcast i64 %524 to double | |
%526 = fmul double %525, %513 | |
%527 = sub nsw i32 1023, %521 | |
%528 = add nsw i32 %527, %499 | |
%529 = zext i32 %528 to i64 | |
%530 = shl i64 %529, 52 | |
%531 = bitcast i64 %530 to double | |
%532 = fmul double %531, %526 | |
%533 = tail call double @llvm.amdgcn.ldexp.f64(double %513, i32 %499) #5 | |
%534 = select i1 %520, double %532, double %533 | |
%535 = fcmp uno double %492, 0.000000e+00 | |
%536 = select i1 %535, double %492, double %534 | |
%537 = fcmp ogt double %492, 0x40862E42FEFA39EF | |
%538 = select i1 %537, double 0x7FF0000000000000, double %536 | |
%539 = fcmp olt double %492, 0xC0874910D52D3051 | |
%540 = select i1 %539, double 0.000000e+00, double %538 | |
%541 = insertelement <4 x double> %491, double %540, i32 1 | |
%542 = shufflevector <4 x double> %441, <4 x double> %541, <4 x i32> <i32 0, i32 1, i32 4, i32 5> | |
%543 = fmul <4 x double> %134, %542 | |
%544 = fadd <4 x double> %133, %339 | |
%545 = fadd <4 x double> %132, %543 | |
%546 = sitofp i32 %129 to double | |
%547 = insertelement <4 x double> undef, double %546, i32 0 | |
%548 = shufflevector <4 x double> %547, <4 x double> undef, <4 x i32> zeroinitializer | |
%549 = fmul <4 x double> %51, %548 | |
%550 = fdiv <4 x double> %339, %19 | |
%551 = extractelement <4 x double> %550, i32 0 | |
%552 = fcmp oge double %551, 0x3FEE0FAA00000000 | |
%553 = fcmp ole double %551, 0x3FF1082C00000000 | |
%554 = and i1 %552, %553 | |
%555 = fadd double %551, -1.000000e+00 | |
%556 = fadd double %555, 2.000000e+00 | |
%557 = fdiv double %555, %556 | |
%558 = fmul double %555, %557 | |
%559 = fadd double %557, %557 | |
%560 = fmul double %559, %559 | |
%561 = fmul double %559, %560 | |
%562 = tail call double @llvm.fma.f64(double %560, double 0x3F3C8034C85DFFF0, double 0x3F62492307F1519F) #6 | |
%563 = tail call double @llvm.fma.f64(double %560, double %562, double 0x3F89999999BAC6D4) #6 | |
%564 = tail call double @llvm.fma.f64(double %560, double %563, double 0x3FB55555555554E6) #6 | |
%565 = fsub double -0.000000e+00, %558 | |
%566 = tail call double @llvm.fma.f64(double %561, double %564, double %565) #6 | |
%567 = bitcast double %555 to i64 | |
%568 = and i64 %567, -4294967296 | |
%569 = bitcast i64 %568 to double | |
%570 = fsub double %555, %569 | |
%571 = fadd double %570, %566 | |
%572 = fmul double %571, 0x3ECB295C17F0BBBE | |
%573 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %569, double %572) #6 | |
%574 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %571, double %573) #6 | |
%575 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %569, double %574) #6 | |
%576 = bitcast double %551 to i64 | |
%577 = or i64 %576, 274719577269600256 | |
%578 = bitcast i64 %577 to double | |
%579 = fadd double %578, 0x83D0000000000000 | |
%580 = bitcast double %579 to i64 | |
%581 = icmp ult i64 %576, 4503599627370496 | |
%582 = select i1 %581, i64 %580, i64 %576 | |
%583 = bitcast i64 %582 to <2 x i32> | |
%584 = extractelement <2 x i32> %583, i32 1 | |
%585 = lshr i32 %584, 20 | |
%586 = and i32 %585, 2047 | |
%587 = select i1 %581, i32 -1083, i32 -1023 | |
%588 = add nsw i32 %586, %587 | |
%589 = and i64 %582, 4503599627370495 | |
%590 = or i64 %589, 4602678819172646912 | |
%591 = bitcast i64 %590 to double | |
%592 = ashr i32 %584, 13 | |
%593 = lshr i32 %592, 1 | |
%594 = and i32 %593, 63 | |
%595 = or i32 %594, 64 | |
%596 = and i32 %592, 1 | |
%597 = add nuw nsw i32 %595, %596 | |
%598 = add nsw i32 %597, -64 | |
%599 = sext i32 %598 to i64 | |
%600 = getelementptr inbounds [65 x <2 x double>], [65 x <2 x double>] addrspace(2)* @LN_TBL, i64 0, i64 %599 | |
%601 = load <2 x double>, <2 x double> addrspace(2)* %600, align 16, !tbaa !7 | |
%602 = extractelement <2 x double> %601, i32 0 | |
%603 = extractelement <2 x double> %601, i32 1 | |
%604 = sitofp i32 %597 to double | |
%605 = fmul double %604, 7.812500e-03 | |
%606 = fsub double %591, %605 | |
%607 = tail call double @llvm.fma.f64(double %606, double 5.000000e-01, double %605) #6 | |
%608 = fdiv double %606, %607 | |
%609 = fmul double %608, %608 | |
%610 = tail call double @llvm.fma.f64(double %609, double 0x3F6249423BD94741, double 0x3F89999999865EDE) #6 | |
%611 = tail call double @llvm.fma.f64(double %609, double %610, double 0x3FB5555555555557) #6 | |
%612 = fmul double %609, %611 | |
%613 = tail call double @llvm.fma.f64(double %608, double %612, double %608) #6 | |
%614 = fadd double %613, %603 | |
%615 = sitofp i32 %588 to double | |
%616 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %602, double %615) #6 | |
%617 = fmul double %614, 0x3ECB295C17F0BBBE | |
%618 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %602, double %617) #6 | |
%619 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %614, double %618) #6 | |
%620 = fadd double %616, %619 | |
%621 = select i1 %554, double %575, double %620 | |
%622 = tail call double @llvm.fabs.f64(double %551) #3 | |
%623 = fcmp oeq double %622, 0x7FF0000000000000 | |
%624 = fcmp uno double %551, 0.000000e+00 | |
%625 = fcmp olt double %551, 0.000000e+00 | |
%626 = or i1 %624, %625 | |
%627 = fcmp oeq double %551, 0.000000e+00 | |
%628 = fmul double %621, 0x3FE62E42FEFA39EF | |
%629 = select i1 %623, double 0x7FF0000000000000, double %628 | |
%630 = select i1 %626, double 0x7FF8000000000000, double %629 | |
%631 = select i1 %627, double 0xFFF0000000000000, double %630 | |
%632 = insertelement <4 x double> undef, double %631, i32 0 | |
%633 = extractelement <4 x double> %550, i32 1 | |
%634 = fcmp oge double %633, 0x3FEE0FAA00000000 | |
%635 = fcmp ole double %633, 0x3FF1082C00000000 | |
%636 = and i1 %634, %635 | |
%637 = fadd double %633, -1.000000e+00 | |
%638 = fadd double %637, 2.000000e+00 | |
%639 = fdiv double %637, %638 | |
%640 = fmul double %637, %639 | |
%641 = fadd double %639, %639 | |
%642 = fmul double %641, %641 | |
%643 = fmul double %641, %642 | |
%644 = tail call double @llvm.fma.f64(double %642, double 0x3F3C8034C85DFFF0, double 0x3F62492307F1519F) #6 | |
%645 = tail call double @llvm.fma.f64(double %642, double %644, double 0x3F89999999BAC6D4) #6 | |
%646 = tail call double @llvm.fma.f64(double %642, double %645, double 0x3FB55555555554E6) #6 | |
%647 = fsub double -0.000000e+00, %640 | |
%648 = tail call double @llvm.fma.f64(double %643, double %646, double %647) #6 | |
%649 = bitcast double %637 to i64 | |
%650 = and i64 %649, -4294967296 | |
%651 = bitcast i64 %650 to double | |
%652 = fsub double %637, %651 | |
%653 = fadd double %652, %648 | |
%654 = fmul double %653, 0x3ECB295C17F0BBBE | |
%655 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %651, double %654) #6 | |
%656 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %653, double %655) #6 | |
%657 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %651, double %656) #6 | |
%658 = bitcast double %633 to i64 | |
%659 = or i64 %658, 274719577269600256 | |
%660 = bitcast i64 %659 to double | |
%661 = fadd double %660, 0x83D0000000000000 | |
%662 = bitcast double %661 to i64 | |
%663 = icmp ult i64 %658, 4503599627370496 | |
%664 = select i1 %663, i64 %662, i64 %658 | |
%665 = bitcast i64 %664 to <2 x i32> | |
%666 = extractelement <2 x i32> %665, i32 1 | |
%667 = lshr i32 %666, 20 | |
%668 = and i32 %667, 2047 | |
%669 = select i1 %663, i32 -1083, i32 -1023 | |
%670 = add nsw i32 %668, %669 | |
%671 = and i64 %664, 4503599627370495 | |
%672 = or i64 %671, 4602678819172646912 | |
%673 = bitcast i64 %672 to double | |
%674 = ashr i32 %666, 13 | |
%675 = lshr i32 %674, 1 | |
%676 = and i32 %675, 63 | |
%677 = or i32 %676, 64 | |
%678 = and i32 %674, 1 | |
%679 = add nuw nsw i32 %677, %678 | |
%680 = add nsw i32 %679, -64 | |
%681 = sext i32 %680 to i64 | |
%682 = getelementptr inbounds [65 x <2 x double>], [65 x <2 x double>] addrspace(2)* @LN_TBL, i64 0, i64 %681 | |
%683 = load <2 x double>, <2 x double> addrspace(2)* %682, align 16, !tbaa !7 | |
%684 = extractelement <2 x double> %683, i32 0 | |
%685 = extractelement <2 x double> %683, i32 1 | |
%686 = sitofp i32 %679 to double | |
%687 = fmul double %686, 7.812500e-03 | |
%688 = fsub double %673, %687 | |
%689 = tail call double @llvm.fma.f64(double %688, double 5.000000e-01, double %687) #6 | |
%690 = fdiv double %688, %689 | |
%691 = fmul double %690, %690 | |
%692 = tail call double @llvm.fma.f64(double %691, double 0x3F6249423BD94741, double 0x3F89999999865EDE) #6 | |
%693 = tail call double @llvm.fma.f64(double %691, double %692, double 0x3FB5555555555557) #6 | |
%694 = fmul double %691, %693 | |
%695 = tail call double @llvm.fma.f64(double %690, double %694, double %690) #6 | |
%696 = fadd double %695, %685 | |
%697 = sitofp i32 %670 to double | |
%698 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %684, double %697) #6 | |
%699 = fmul double %696, 0x3ECB295C17F0BBBE | |
%700 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %684, double %699) #6 | |
%701 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %696, double %700) #6 | |
%702 = fadd double %698, %701 | |
%703 = select i1 %636, double %657, double %702 | |
%704 = tail call double @llvm.fabs.f64(double %633) #3 | |
%705 = fcmp oeq double %704, 0x7FF0000000000000 | |
%706 = fcmp uno double %633, 0.000000e+00 | |
%707 = fcmp olt double %633, 0.000000e+00 | |
%708 = or i1 %706, %707 | |
%709 = fcmp oeq double %633, 0.000000e+00 | |
%710 = fmul double %703, 0x3FE62E42FEFA39EF | |
%711 = select i1 %705, double 0x7FF0000000000000, double %710 | |
%712 = select i1 %708, double 0x7FF8000000000000, double %711 | |
%713 = select i1 %709, double 0xFFF0000000000000, double %712 | |
%714 = insertelement <4 x double> %632, double %713, i32 1 | |
%715 = extractelement <4 x double> %550, i32 2 | |
%716 = fcmp oge double %715, 0x3FEE0FAA00000000 | |
%717 = fcmp ole double %715, 0x3FF1082C00000000 | |
%718 = and i1 %716, %717 | |
%719 = fadd double %715, -1.000000e+00 | |
%720 = fadd double %719, 2.000000e+00 | |
%721 = fdiv double %719, %720 | |
%722 = fmul double %719, %721 | |
%723 = fadd double %721, %721 | |
%724 = fmul double %723, %723 | |
%725 = fmul double %723, %724 | |
%726 = tail call double @llvm.fma.f64(double %724, double 0x3F3C8034C85DFFF0, double 0x3F62492307F1519F) #6 | |
%727 = tail call double @llvm.fma.f64(double %724, double %726, double 0x3F89999999BAC6D4) #6 | |
%728 = tail call double @llvm.fma.f64(double %724, double %727, double 0x3FB55555555554E6) #6 | |
%729 = fsub double -0.000000e+00, %722 | |
%730 = tail call double @llvm.fma.f64(double %725, double %728, double %729) #6 | |
%731 = bitcast double %719 to i64 | |
%732 = and i64 %731, -4294967296 | |
%733 = bitcast i64 %732 to double | |
%734 = fsub double %719, %733 | |
%735 = fadd double %734, %730 | |
%736 = fmul double %735, 0x3ECB295C17F0BBBE | |
%737 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %733, double %736) #6 | |
%738 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %735, double %737) #6 | |
%739 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %733, double %738) #6 | |
%740 = bitcast double %715 to i64 | |
%741 = or i64 %740, 274719577269600256 | |
%742 = bitcast i64 %741 to double | |
%743 = fadd double %742, 0x83D0000000000000 | |
%744 = bitcast double %743 to i64 | |
%745 = icmp ult i64 %740, 4503599627370496 | |
%746 = select i1 %745, i64 %744, i64 %740 | |
%747 = bitcast i64 %746 to <2 x i32> | |
%748 = extractelement <2 x i32> %747, i32 1 | |
%749 = lshr i32 %748, 20 | |
%750 = and i32 %749, 2047 | |
%751 = select i1 %745, i32 -1083, i32 -1023 | |
%752 = add nsw i32 %750, %751 | |
%753 = and i64 %746, 4503599627370495 | |
%754 = or i64 %753, 4602678819172646912 | |
%755 = bitcast i64 %754 to double | |
%756 = ashr i32 %748, 13 | |
%757 = lshr i32 %756, 1 | |
%758 = and i32 %757, 63 | |
%759 = or i32 %758, 64 | |
%760 = and i32 %756, 1 | |
%761 = add nuw nsw i32 %759, %760 | |
%762 = add nsw i32 %761, -64 | |
%763 = sext i32 %762 to i64 | |
%764 = getelementptr inbounds [65 x <2 x double>], [65 x <2 x double>] addrspace(2)* @LN_TBL, i64 0, i64 %763 | |
%765 = load <2 x double>, <2 x double> addrspace(2)* %764, align 16, !tbaa !7 | |
%766 = extractelement <2 x double> %765, i32 0 | |
%767 = extractelement <2 x double> %765, i32 1 | |
%768 = sitofp i32 %761 to double | |
%769 = fmul double %768, 7.812500e-03 | |
%770 = fsub double %755, %769 | |
%771 = tail call double @llvm.fma.f64(double %770, double 5.000000e-01, double %769) #6 | |
%772 = fdiv double %770, %771 | |
%773 = fmul double %772, %772 | |
%774 = tail call double @llvm.fma.f64(double %773, double 0x3F6249423BD94741, double 0x3F89999999865EDE) #6 | |
%775 = tail call double @llvm.fma.f64(double %773, double %774, double 0x3FB5555555555557) #6 | |
%776 = fmul double %773, %775 | |
%777 = tail call double @llvm.fma.f64(double %772, double %776, double %772) #6 | |
%778 = fadd double %777, %767 | |
%779 = sitofp i32 %752 to double | |
%780 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %766, double %779) #6 | |
%781 = fmul double %778, 0x3ECB295C17F0BBBE | |
%782 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %766, double %781) #6 | |
%783 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %778, double %782) #6 | |
%784 = fadd double %780, %783 | |
%785 = select i1 %718, double %739, double %784 | |
%786 = tail call double @llvm.fabs.f64(double %715) #3 | |
%787 = fcmp oeq double %786, 0x7FF0000000000000 | |
%788 = fcmp uno double %715, 0.000000e+00 | |
%789 = fcmp olt double %715, 0.000000e+00 | |
%790 = or i1 %788, %789 | |
%791 = fcmp oeq double %715, 0.000000e+00 | |
%792 = fmul double %785, 0x3FE62E42FEFA39EF | |
%793 = select i1 %787, double 0x7FF0000000000000, double %792 | |
%794 = select i1 %790, double 0x7FF8000000000000, double %793 | |
%795 = select i1 %791, double 0xFFF0000000000000, double %794 | |
%796 = insertelement <4 x double> undef, double %795, i32 0 | |
%797 = extractelement <4 x double> %550, i32 3 | |
%798 = fcmp oge double %797, 0x3FEE0FAA00000000 | |
%799 = fcmp ole double %797, 0x3FF1082C00000000 | |
%800 = and i1 %798, %799 | |
%801 = fadd double %797, -1.000000e+00 | |
%802 = fadd double %801, 2.000000e+00 | |
%803 = fdiv double %801, %802 | |
%804 = fmul double %801, %803 | |
%805 = fadd double %803, %803 | |
%806 = fmul double %805, %805 | |
%807 = fmul double %805, %806 | |
%808 = tail call double @llvm.fma.f64(double %806, double 0x3F3C8034C85DFFF0, double 0x3F62492307F1519F) #6 | |
%809 = tail call double @llvm.fma.f64(double %806, double %808, double 0x3F89999999BAC6D4) #6 | |
%810 = tail call double @llvm.fma.f64(double %806, double %809, double 0x3FB55555555554E6) #6 | |
%811 = fsub double -0.000000e+00, %804 | |
%812 = tail call double @llvm.fma.f64(double %807, double %810, double %811) #6 | |
%813 = bitcast double %801 to i64 | |
%814 = and i64 %813, -4294967296 | |
%815 = bitcast i64 %814 to double | |
%816 = fsub double %801, %815 | |
%817 = fadd double %816, %812 | |
%818 = fmul double %817, 0x3ECB295C17F0BBBE | |
%819 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %815, double %818) #6 | |
%820 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %817, double %819) #6 | |
%821 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %815, double %820) #6 | |
%822 = bitcast double %797 to i64 | |
%823 = or i64 %822, 274719577269600256 | |
%824 = bitcast i64 %823 to double | |
%825 = fadd double %824, 0x83D0000000000000 | |
%826 = bitcast double %825 to i64 | |
%827 = icmp ult i64 %822, 4503599627370496 | |
%828 = select i1 %827, i64 %826, i64 %822 | |
%829 = bitcast i64 %828 to <2 x i32> | |
%830 = extractelement <2 x i32> %829, i32 1 | |
%831 = lshr i32 %830, 20 | |
%832 = and i32 %831, 2047 | |
%833 = select i1 %827, i32 -1083, i32 -1023 | |
%834 = add nsw i32 %832, %833 | |
%835 = and i64 %828, 4503599627370495 | |
%836 = or i64 %835, 4602678819172646912 | |
%837 = bitcast i64 %836 to double | |
%838 = ashr i32 %830, 13 | |
%839 = lshr i32 %838, 1 | |
%840 = and i32 %839, 63 | |
%841 = or i32 %840, 64 | |
%842 = and i32 %838, 1 | |
%843 = add nuw nsw i32 %841, %842 | |
%844 = add nsw i32 %843, -64 | |
%845 = sext i32 %844 to i64 | |
%846 = getelementptr inbounds [65 x <2 x double>], [65 x <2 x double>] addrspace(2)* @LN_TBL, i64 0, i64 %845 | |
%847 = load <2 x double>, <2 x double> addrspace(2)* %846, align 16, !tbaa !7 | |
%848 = extractelement <2 x double> %847, i32 0 | |
%849 = extractelement <2 x double> %847, i32 1 | |
%850 = sitofp i32 %843 to double | |
%851 = fmul double %850, 7.812500e-03 | |
%852 = fsub double %837, %851 | |
%853 = tail call double @llvm.fma.f64(double %852, double 5.000000e-01, double %851) #6 | |
%854 = fdiv double %852, %853 | |
%855 = fmul double %854, %854 | |
%856 = tail call double @llvm.fma.f64(double %855, double 0x3F6249423BD94741, double 0x3F89999999865EDE) #6 | |
%857 = tail call double @llvm.fma.f64(double %855, double %856, double 0x3FB5555555555557) #6 | |
%858 = fmul double %855, %857 | |
%859 = tail call double @llvm.fma.f64(double %854, double %858, double %854) #6 | |
%860 = fadd double %859, %849 | |
%861 = sitofp i32 %834 to double | |
%862 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %848, double %861) #6 | |
%863 = fmul double %860, 0x3ECB295C17F0BBBE | |
%864 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %848, double %863) #6 | |
%865 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %860, double %864) #6 | |
%866 = fadd double %862, %865 | |
%867 = select i1 %800, double %821, double %866 | |
%868 = tail call double @llvm.fabs.f64(double %797) #3 | |
%869 = fcmp oeq double %868, 0x7FF0000000000000 | |
%870 = fcmp uno double %797, 0.000000e+00 | |
%871 = fcmp olt double %797, 0.000000e+00 | |
%872 = or i1 %870, %871 | |
%873 = fcmp oeq double %797, 0.000000e+00 | |
%874 = fmul double %867, 0x3FE62E42FEFA39EF | |
%875 = select i1 %869, double 0x7FF0000000000000, double %874 | |
%876 = select i1 %872, double 0x7FF8000000000000, double %875 | |
%877 = select i1 %873, double 0xFFF0000000000000, double %876 | |
%878 = insertelement <4 x double> %796, double %877, i32 1 | |
%879 = shufflevector <4 x double> %714, <4 x double> %878, <4 x i32> <i32 0, i32 1, i32 4, i32 5> | |
%880 = fsub <4 x double> %879, %549 | |
%881 = fdiv <4 x double> %880, %21 | |
%882 = tail call <4 x double> @llvm.fmuladd.v4f64(<4 x double> %339, <4 x double> %881, <4 x double> %131) | |
%883 = fdiv <4 x double> %543, %19 | |
%884 = extractelement <4 x double> %883, i32 0 | |
%885 = fcmp oge double %884, 0x3FEE0FAA00000000 | |
%886 = fcmp ole double %884, 0x3FF1082C00000000 | |
%887 = and i1 %885, %886 | |
%888 = fadd double %884, -1.000000e+00 | |
%889 = fadd double %888, 2.000000e+00 | |
%890 = fdiv double %888, %889 | |
%891 = fmul double %888, %890 | |
%892 = fadd double %890, %890 | |
%893 = fmul double %892, %892 | |
%894 = fmul double %892, %893 | |
%895 = tail call double @llvm.fma.f64(double %893, double 0x3F3C8034C85DFFF0, double 0x3F62492307F1519F) #6 | |
%896 = tail call double @llvm.fma.f64(double %893, double %895, double 0x3F89999999BAC6D4) #6 | |
%897 = tail call double @llvm.fma.f64(double %893, double %896, double 0x3FB55555555554E6) #6 | |
%898 = fsub double -0.000000e+00, %891 | |
%899 = tail call double @llvm.fma.f64(double %894, double %897, double %898) #6 | |
%900 = bitcast double %888 to i64 | |
%901 = and i64 %900, -4294967296 | |
%902 = bitcast i64 %901 to double | |
%903 = fsub double %888, %902 | |
%904 = fadd double %903, %899 | |
%905 = fmul double %904, 0x3ECB295C17F0BBBE | |
%906 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %902, double %905) #6 | |
%907 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %904, double %906) #6 | |
%908 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %902, double %907) #6 | |
%909 = bitcast double %884 to i64 | |
%910 = or i64 %909, 274719577269600256 | |
%911 = bitcast i64 %910 to double | |
%912 = fadd double %911, 0x83D0000000000000 | |
%913 = bitcast double %912 to i64 | |
%914 = icmp ult i64 %909, 4503599627370496 | |
%915 = select i1 %914, i64 %913, i64 %909 | |
%916 = bitcast i64 %915 to <2 x i32> | |
%917 = extractelement <2 x i32> %916, i32 1 | |
%918 = lshr i32 %917, 20 | |
%919 = and i32 %918, 2047 | |
%920 = select i1 %914, i32 -1083, i32 -1023 | |
%921 = add nsw i32 %919, %920 | |
%922 = and i64 %915, 4503599627370495 | |
%923 = or i64 %922, 4602678819172646912 | |
%924 = bitcast i64 %923 to double | |
%925 = ashr i32 %917, 13 | |
%926 = lshr i32 %925, 1 | |
%927 = and i32 %926, 63 | |
%928 = or i32 %927, 64 | |
%929 = and i32 %925, 1 | |
%930 = add nuw nsw i32 %928, %929 | |
%931 = add nsw i32 %930, -64 | |
%932 = sext i32 %931 to i64 | |
%933 = getelementptr inbounds [65 x <2 x double>], [65 x <2 x double>] addrspace(2)* @LN_TBL, i64 0, i64 %932 | |
%934 = load <2 x double>, <2 x double> addrspace(2)* %933, align 16, !tbaa !7 | |
%935 = extractelement <2 x double> %934, i32 0 | |
%936 = extractelement <2 x double> %934, i32 1 | |
%937 = sitofp i32 %930 to double | |
%938 = fmul double %937, 7.812500e-03 | |
%939 = fsub double %924, %938 | |
%940 = tail call double @llvm.fma.f64(double %939, double 5.000000e-01, double %938) #6 | |
%941 = fdiv double %939, %940 | |
%942 = fmul double %941, %941 | |
%943 = tail call double @llvm.fma.f64(double %942, double 0x3F6249423BD94741, double 0x3F89999999865EDE) #6 | |
%944 = tail call double @llvm.fma.f64(double %942, double %943, double 0x3FB5555555555557) #6 | |
%945 = fmul double %942, %944 | |
%946 = tail call double @llvm.fma.f64(double %941, double %945, double %941) #6 | |
%947 = fadd double %936, %946 | |
%948 = sitofp i32 %921 to double | |
%949 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %935, double %948) #6 | |
%950 = fmul double %947, 0x3ECB295C17F0BBBE | |
%951 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %935, double %950) #6 | |
%952 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %947, double %951) #6 | |
%953 = fadd double %949, %952 | |
%954 = select i1 %887, double %908, double %953 | |
%955 = tail call double @llvm.fabs.f64(double %884) #3 | |
%956 = fcmp oeq double %955, 0x7FF0000000000000 | |
%957 = fcmp uno double %884, 0.000000e+00 | |
%958 = fcmp olt double %884, 0.000000e+00 | |
%959 = or i1 %957, %958 | |
%960 = fcmp oeq double %884, 0.000000e+00 | |
%961 = fmul double %954, 0x3FE62E42FEFA39EF | |
%962 = select i1 %956, double 0x7FF0000000000000, double %961 | |
%963 = select i1 %959, double 0x7FF8000000000000, double %962 | |
%964 = select i1 %960, double 0xFFF0000000000000, double %963 | |
%965 = insertelement <4 x double> undef, double %964, i32 0 | |
%966 = extractelement <4 x double> %883, i32 1 | |
%967 = fcmp oge double %966, 0x3FEE0FAA00000000 | |
%968 = fcmp ole double %966, 0x3FF1082C00000000 | |
%969 = and i1 %967, %968 | |
%970 = fadd double %966, -1.000000e+00 | |
%971 = fadd double %970, 2.000000e+00 | |
%972 = fdiv double %970, %971 | |
%973 = fmul double %970, %972 | |
%974 = fadd double %972, %972 | |
%975 = fmul double %974, %974 | |
%976 = fmul double %974, %975 | |
%977 = tail call double @llvm.fma.f64(double %975, double 0x3F3C8034C85DFFF0, double 0x3F62492307F1519F) #6 | |
%978 = tail call double @llvm.fma.f64(double %975, double %977, double 0x3F89999999BAC6D4) #6 | |
%979 = tail call double @llvm.fma.f64(double %975, double %978, double 0x3FB55555555554E6) #6 | |
%980 = fsub double -0.000000e+00, %973 | |
%981 = tail call double @llvm.fma.f64(double %976, double %979, double %980) #6 | |
%982 = bitcast double %970 to i64 | |
%983 = and i64 %982, -4294967296 | |
%984 = bitcast i64 %983 to double | |
%985 = fsub double %970, %984 | |
%986 = fadd double %985, %981 | |
%987 = fmul double %986, 0x3ECB295C17F0BBBE | |
%988 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %984, double %987) #6 | |
%989 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %986, double %988) #6 | |
%990 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %984, double %989) #6 | |
%991 = bitcast double %966 to i64 | |
%992 = or i64 %991, 274719577269600256 | |
%993 = bitcast i64 %992 to double | |
%994 = fadd double %993, 0x83D0000000000000 | |
%995 = bitcast double %994 to i64 | |
%996 = icmp ult i64 %991, 4503599627370496 | |
%997 = select i1 %996, i64 %995, i64 %991 | |
%998 = bitcast i64 %997 to <2 x i32> | |
%999 = extractelement <2 x i32> %998, i32 1 | |
%1000 = lshr i32 %999, 20 | |
%1001 = and i32 %1000, 2047 | |
%1002 = select i1 %996, i32 -1083, i32 -1023 | |
%1003 = add nsw i32 %1001, %1002 | |
%1004 = and i64 %997, 4503599627370495 | |
%1005 = or i64 %1004, 4602678819172646912 | |
%1006 = bitcast i64 %1005 to double | |
%1007 = ashr i32 %999, 13 | |
%1008 = lshr i32 %1007, 1 | |
%1009 = and i32 %1008, 63 | |
%1010 = or i32 %1009, 64 | |
%1011 = and i32 %1007, 1 | |
%1012 = add nuw nsw i32 %1010, %1011 | |
%1013 = add nsw i32 %1012, -64 | |
%1014 = sext i32 %1013 to i64 | |
%1015 = getelementptr inbounds [65 x <2 x double>], [65 x <2 x double>] addrspace(2)* @LN_TBL, i64 0, i64 %1014 | |
%1016 = load <2 x double>, <2 x double> addrspace(2)* %1015, align 16, !tbaa !7 | |
%1017 = extractelement <2 x double> %1016, i32 0 | |
%1018 = extractelement <2 x double> %1016, i32 1 | |
%1019 = sitofp i32 %1012 to double | |
%1020 = fmul double %1019, 7.812500e-03 | |
%1021 = fsub double %1006, %1020 | |
%1022 = tail call double @llvm.fma.f64(double %1021, double 5.000000e-01, double %1020) #6 | |
%1023 = fdiv double %1021, %1022 | |
%1024 = fmul double %1023, %1023 | |
%1025 = tail call double @llvm.fma.f64(double %1024, double 0x3F6249423BD94741, double 0x3F89999999865EDE) #6 | |
%1026 = tail call double @llvm.fma.f64(double %1024, double %1025, double 0x3FB5555555555557) #6 | |
%1027 = fmul double %1024, %1026 | |
%1028 = tail call double @llvm.fma.f64(double %1023, double %1027, double %1023) #6 | |
%1029 = fadd double %1018, %1028 | |
%1030 = sitofp i32 %1003 to double | |
%1031 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %1017, double %1030) #6 | |
%1032 = fmul double %1029, 0x3ECB295C17F0BBBE | |
%1033 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %1017, double %1032) #6 | |
%1034 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %1029, double %1033) #6 | |
%1035 = fadd double %1031, %1034 | |
%1036 = select i1 %969, double %990, double %1035 | |
%1037 = tail call double @llvm.fabs.f64(double %966) #3 | |
%1038 = fcmp oeq double %1037, 0x7FF0000000000000 | |
%1039 = fcmp uno double %966, 0.000000e+00 | |
%1040 = fcmp olt double %966, 0.000000e+00 | |
%1041 = or i1 %1039, %1040 | |
%1042 = fcmp oeq double %966, 0.000000e+00 | |
%1043 = fmul double %1036, 0x3FE62E42FEFA39EF | |
%1044 = select i1 %1038, double 0x7FF0000000000000, double %1043 | |
%1045 = select i1 %1041, double 0x7FF8000000000000, double %1044 | |
%1046 = select i1 %1042, double 0xFFF0000000000000, double %1045 | |
%1047 = insertelement <4 x double> %965, double %1046, i32 1 | |
%1048 = extractelement <4 x double> %883, i32 2 | |
%1049 = fcmp oge double %1048, 0x3FEE0FAA00000000 | |
%1050 = fcmp ole double %1048, 0x3FF1082C00000000 | |
%1051 = and i1 %1049, %1050 | |
%1052 = fadd double %1048, -1.000000e+00 | |
%1053 = fadd double %1052, 2.000000e+00 | |
%1054 = fdiv double %1052, %1053 | |
%1055 = fmul double %1052, %1054 | |
%1056 = fadd double %1054, %1054 | |
%1057 = fmul double %1056, %1056 | |
%1058 = fmul double %1056, %1057 | |
%1059 = tail call double @llvm.fma.f64(double %1057, double 0x3F3C8034C85DFFF0, double 0x3F62492307F1519F) #6 | |
%1060 = tail call double @llvm.fma.f64(double %1057, double %1059, double 0x3F89999999BAC6D4) #6 | |
%1061 = tail call double @llvm.fma.f64(double %1057, double %1060, double 0x3FB55555555554E6) #6 | |
%1062 = fsub double -0.000000e+00, %1055 | |
%1063 = tail call double @llvm.fma.f64(double %1058, double %1061, double %1062) #6 | |
%1064 = bitcast double %1052 to i64 | |
%1065 = and i64 %1064, -4294967296 | |
%1066 = bitcast i64 %1065 to double | |
%1067 = fsub double %1052, %1066 | |
%1068 = fadd double %1067, %1063 | |
%1069 = fmul double %1068, 0x3ECB295C17F0BBBE | |
%1070 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %1066, double %1069) #6 | |
%1071 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %1068, double %1070) #6 | |
%1072 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %1066, double %1071) #6 | |
%1073 = bitcast double %1048 to i64 | |
%1074 = or i64 %1073, 274719577269600256 | |
%1075 = bitcast i64 %1074 to double | |
%1076 = fadd double %1075, 0x83D0000000000000 | |
%1077 = bitcast double %1076 to i64 | |
%1078 = icmp ult i64 %1073, 4503599627370496 | |
%1079 = select i1 %1078, i64 %1077, i64 %1073 | |
%1080 = bitcast i64 %1079 to <2 x i32> | |
%1081 = extractelement <2 x i32> %1080, i32 1 | |
%1082 = lshr i32 %1081, 20 | |
%1083 = and i32 %1082, 2047 | |
%1084 = select i1 %1078, i32 -1083, i32 -1023 | |
%1085 = add nsw i32 %1083, %1084 | |
%1086 = and i64 %1079, 4503599627370495 | |
%1087 = or i64 %1086, 4602678819172646912 | |
%1088 = bitcast i64 %1087 to double | |
%1089 = ashr i32 %1081, 13 | |
%1090 = lshr i32 %1089, 1 | |
%1091 = and i32 %1090, 63 | |
%1092 = or i32 %1091, 64 | |
%1093 = and i32 %1089, 1 | |
%1094 = add nuw nsw i32 %1092, %1093 | |
%1095 = add nsw i32 %1094, -64 | |
%1096 = sext i32 %1095 to i64 | |
%1097 = getelementptr inbounds [65 x <2 x double>], [65 x <2 x double>] addrspace(2)* @LN_TBL, i64 0, i64 %1096 | |
%1098 = load <2 x double>, <2 x double> addrspace(2)* %1097, align 16, !tbaa !7 | |
%1099 = extractelement <2 x double> %1098, i32 0 | |
%1100 = extractelement <2 x double> %1098, i32 1 | |
%1101 = sitofp i32 %1094 to double | |
%1102 = fmul double %1101, 7.812500e-03 | |
%1103 = fsub double %1088, %1102 | |
%1104 = tail call double @llvm.fma.f64(double %1103, double 5.000000e-01, double %1102) #6 | |
%1105 = fdiv double %1103, %1104 | |
%1106 = fmul double %1105, %1105 | |
%1107 = tail call double @llvm.fma.f64(double %1106, double 0x3F6249423BD94741, double 0x3F89999999865EDE) #6 | |
%1108 = tail call double @llvm.fma.f64(double %1106, double %1107, double 0x3FB5555555555557) #6 | |
%1109 = fmul double %1106, %1108 | |
%1110 = tail call double @llvm.fma.f64(double %1105, double %1109, double %1105) #6 | |
%1111 = fadd double %1100, %1110 | |
%1112 = sitofp i32 %1085 to double | |
%1113 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %1099, double %1112) #6 | |
%1114 = fmul double %1111, 0x3ECB295C17F0BBBE | |
%1115 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %1099, double %1114) #6 | |
%1116 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %1111, double %1115) #6 | |
%1117 = fadd double %1113, %1116 | |
%1118 = select i1 %1051, double %1072, double %1117 | |
%1119 = tail call double @llvm.fabs.f64(double %1048) #3 | |
%1120 = fcmp oeq double %1119, 0x7FF0000000000000 | |
%1121 = fcmp uno double %1048, 0.000000e+00 | |
%1122 = fcmp olt double %1048, 0.000000e+00 | |
%1123 = or i1 %1121, %1122 | |
%1124 = fcmp oeq double %1048, 0.000000e+00 | |
%1125 = fmul double %1118, 0x3FE62E42FEFA39EF | |
%1126 = select i1 %1120, double 0x7FF0000000000000, double %1125 | |
%1127 = select i1 %1123, double 0x7FF8000000000000, double %1126 | |
%1128 = select i1 %1124, double 0xFFF0000000000000, double %1127 | |
%1129 = insertelement <4 x double> undef, double %1128, i32 0 | |
%1130 = extractelement <4 x double> %883, i32 3 | |
%1131 = fcmp oge double %1130, 0x3FEE0FAA00000000 | |
%1132 = fcmp ole double %1130, 0x3FF1082C00000000 | |
%1133 = and i1 %1131, %1132 | |
%1134 = fadd double %1130, -1.000000e+00 | |
%1135 = fadd double %1134, 2.000000e+00 | |
%1136 = fdiv double %1134, %1135 | |
%1137 = fmul double %1134, %1136 | |
%1138 = fadd double %1136, %1136 | |
%1139 = fmul double %1138, %1138 | |
%1140 = fmul double %1138, %1139 | |
%1141 = tail call double @llvm.fma.f64(double %1139, double 0x3F3C8034C85DFFF0, double 0x3F62492307F1519F) #6 | |
%1142 = tail call double @llvm.fma.f64(double %1139, double %1141, double 0x3F89999999BAC6D4) #6 | |
%1143 = tail call double @llvm.fma.f64(double %1139, double %1142, double 0x3FB55555555554E6) #6 | |
%1144 = fsub double -0.000000e+00, %1137 | |
%1145 = tail call double @llvm.fma.f64(double %1140, double %1143, double %1144) #6 | |
%1146 = bitcast double %1134 to i64 | |
%1147 = and i64 %1146, -4294967296 | |
%1148 = bitcast i64 %1147 to double | |
%1149 = fsub double %1134, %1148 | |
%1150 = fadd double %1149, %1145 | |
%1151 = fmul double %1150, 0x3ECB295C17F0BBBE | |
%1152 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %1148, double %1151) #6 | |
%1153 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %1150, double %1152) #6 | |
%1154 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %1148, double %1153) #6 | |
%1155 = bitcast double %1130 to i64 | |
%1156 = or i64 %1155, 274719577269600256 | |
%1157 = bitcast i64 %1156 to double | |
%1158 = fadd double %1157, 0x83D0000000000000 | |
%1159 = bitcast double %1158 to i64 | |
%1160 = icmp ult i64 %1155, 4503599627370496 | |
%1161 = select i1 %1160, i64 %1159, i64 %1155 | |
%1162 = bitcast i64 %1161 to <2 x i32> | |
%1163 = extractelement <2 x i32> %1162, i32 1 | |
%1164 = lshr i32 %1163, 20 | |
%1165 = and i32 %1164, 2047 | |
%1166 = select i1 %1160, i32 -1083, i32 -1023 | |
%1167 = add nsw i32 %1165, %1166 | |
%1168 = and i64 %1161, 4503599627370495 | |
%1169 = or i64 %1168, 4602678819172646912 | |
%1170 = bitcast i64 %1169 to double | |
%1171 = ashr i32 %1163, 13 | |
%1172 = lshr i32 %1171, 1 | |
%1173 = and i32 %1172, 63 | |
%1174 = or i32 %1173, 64 | |
%1175 = and i32 %1171, 1 | |
%1176 = add nuw nsw i32 %1174, %1175 | |
%1177 = add nsw i32 %1176, -64 | |
%1178 = sext i32 %1177 to i64 | |
%1179 = getelementptr inbounds [65 x <2 x double>], [65 x <2 x double>] addrspace(2)* @LN_TBL, i64 0, i64 %1178 | |
%1180 = load <2 x double>, <2 x double> addrspace(2)* %1179, align 16, !tbaa !7 | |
%1181 = extractelement <2 x double> %1180, i32 0 | |
%1182 = extractelement <2 x double> %1180, i32 1 | |
%1183 = sitofp i32 %1176 to double | |
%1184 = fmul double %1183, 7.812500e-03 | |
%1185 = fsub double %1170, %1184 | |
%1186 = tail call double @llvm.fma.f64(double %1185, double 5.000000e-01, double %1184) #6 | |
%1187 = fdiv double %1185, %1186 | |
%1188 = fmul double %1187, %1187 | |
%1189 = tail call double @llvm.fma.f64(double %1188, double 0x3F6249423BD94741, double 0x3F89999999865EDE) #6 | |
%1190 = tail call double @llvm.fma.f64(double %1188, double %1189, double 0x3FB5555555555557) #6 | |
%1191 = fmul double %1188, %1190 | |
%1192 = tail call double @llvm.fma.f64(double %1187, double %1191, double %1187) #6 | |
%1193 = fadd double %1182, %1192 | |
%1194 = sitofp i32 %1167 to double | |
%1195 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %1181, double %1194) #6 | |
%1196 = fmul double %1193, 0x3ECB295C17F0BBBE | |
%1197 = tail call double @llvm.fma.f64(double 0x3ECB295C17F0BBBE, double %1181, double %1196) #6 | |
%1198 = tail call double @llvm.fma.f64(double 0x3FF7154400000000, double %1193, double %1197) #6 | |
%1199 = fadd double %1195, %1198 | |
%1200 = select i1 %1133, double %1154, double %1199 | |
%1201 = tail call double @llvm.fabs.f64(double %1130) #3 | |
%1202 = fcmp oeq double %1201, 0x7FF0000000000000 | |
%1203 = fcmp uno double %1130, 0.000000e+00 | |
%1204 = fcmp olt double %1130, 0.000000e+00 | |
%1205 = or i1 %1203, %1204 | |
%1206 = fcmp oeq double %1130, 0.000000e+00 | |
%1207 = fmul double %1200, 0x3FE62E42FEFA39EF | |
%1208 = select i1 %1202, double 0x7FF0000000000000, double %1207 | |
%1209 = select i1 %1205, double 0x7FF8000000000000, double %1208 | |
%1210 = select i1 %1206, double 0xFFF0000000000000, double %1209 | |
%1211 = insertelement <4 x double> %1129, double %1210, i32 1 | |
%1212 = shufflevector <4 x double> %1047, <4 x double> %1211, <4 x i32> <i32 0, i32 1, i32 4, i32 5> | |
%1213 = fsub <4 x double> %1212, %549 | |
%1214 = fdiv <4 x double> %1213, %21 | |
%1215 = tail call <4 x double> @llvm.fmuladd.v4f64(<4 x double> %543, <4 x double> %1214, <4 x double> %130) | |
%1216 = add nuw nsw i32 %129, 1 | |
%1217 = icmp eq i32 %1216, %1 | |
br i1 %1217, label %52, label %1218 | |
; <label>:1218: ; preds = %519 | |
%1219 = load <4 x i32>, <4 x i32>* %9, align 16, !tbaa !7 | |
br label %127 | |
} | |
; Function Attrs: nounwind readnone | |
declare <4 x double> @llvm.fmuladd.v4f64(<4 x double>, <4 x double>, <4 x double>) #3 | |
; Function Attrs: nounwind readnone | |
declare i32 @llvm.amdgcn.workgroup.id.x() #3 | |
; Function Attrs: nounwind readnone | |
declare i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #3 | |
; Function Attrs: nounwind readnone | |
declare i32 @llvm.amdgcn.workitem.id.x() #3 | |
; Function Attrs: nounwind readnone | |
declare i32 @llvm.amdgcn.workgroup.id.y() #3 | |
; Function Attrs: nounwind readnone | |
declare i32 @llvm.amdgcn.workitem.id.y() #3 | |
; Function Attrs: nounwind readnone | |
declare double @llvm.amdgcn.ldexp.f64(double, i32) #3 | |
; Function Attrs: nounwind readnone | |
declare double @llvm.amdgcn.rsq.f64(double) #3 | |
; Function Attrs: nounwind readnone | |
declare double @llvm.fma.f64(double, double, double) #3 | |
; Function Attrs: nounwind readnone | |
declare double @llvm.fabs.f64(double) #3 | |
; Function Attrs: nounwind readnone | |
declare double @llvm.trunc.f64(double) #3 | |
; Function Attrs: nounwind readnone | |
declare double @llvm.floor.f64(double) #3 | |
; Function Attrs: nounwind readnone | |
declare double @fmin(double, double) #4 | |
attributes #0 = { norecurse nounwind "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="kaveri" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
attributes #1 = { argmemonly nounwind } | |
attributes #2 = { nounwind "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="kaveri" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
attributes #3 = { nounwind readnone } | |
attributes #4 = { nounwind readnone "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="kaveri" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
attributes #5 = { nounwind } | |
attributes #6 = { nobuiltin nounwind } | |
attributes #7 = { nobuiltin nounwind readnone } | |
!opencl.kernels = !{!0} | |
!llvm.ident = !{!6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6, !6} | |
!0 = !{void (%struct._MonteCalroAttrib*, i32, i32, <4 x i32> addrspace(1)*, <4 x double> addrspace(1)*, <4 x double> addrspace(1)*)* @calPriceVega, !1, !2, !3, !4, !5} | |
!1 = !{!"kernel_arg_addr_space", i32 0, i32 0, i32 0, i32 1, i32 1, i32 1} | |
!2 = !{!"kernel_arg_access_qual", !"none", !"none", !"none", !"none", !"none", !"none"} | |
!3 = !{!"kernel_arg_type", !"MonteCarloAttrib", !"int", !"int", !"uint4*", !"double4*", !"double4*"} | |
!4 = !{!"kernel_arg_base_type", !"struct _MonteCalroAttrib", !"int", !"int", !"uint __attribute__((ext_vector_type(4)))*", !"double __attribute__((ext_vector_type(4)))*", !"double __attribute__((ext_vector_type(4)))*"} | |
!5 = !{!"kernel_arg_type_qual", !"", !"", !"", !"", !"", !""} | |
!6 = !{!"clang version 3.9.0 "} | |
!7 = !{!8, !8, i64 0} | |
!8 = !{!"omnipotent char", !9, i64 0} | |
!9 = !{!"Simple C/C++ TBAA"} | |
!10 = !{!11, !8, i64 0} | |
!11 = !{!"_MonteCalroAttrib", !8, i64 0, !8, i64 32, !8, i64 64, !8, i64 96, !8, i64 128, !8, i64 160, !8, i64 192} | |
!12 = !{!11, !8, i64 32} | |
!13 = !{!11, !8, i64 64} | |
!14 = !{!11, !8, i64 96} | |
!15 = !{!11, !8, i64 128} | |
!16 = !{!11, !8, i64 160} | |
!17 = !{!11, !8, i64 192} | |
!18 = !{} | |
!19 = !{i32 0, i32 2048} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment