brintos

brintos / llvm-project-archived public Read only

0
0
Text · 18.6 KiB · 98cc6ba Raw
296 lines · plain
1; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 < %s | FileCheck --check-prefix=GCN %s2 3; GCN-LABEL: {{^}}load_fma_store4; GCN-NOT: scratch_store5; ScratchSize: 0{{$}}6 7define amdgpu_kernel void @load_fma_store(ptr addrspace(3) nocapture readonly %arg, ptr addrspace(1) nocapture %arg1, i1 %cc) {8bb:9  %vgpr0 = call <32 x i32> asm sideeffect "; def $0","=${v[0:31]}"()10  %vgpr1 = call <32 x i32> asm sideeffect "; def $0","=${v[32:63]}"()11  %vgpr2 = call <32 x i32> asm sideeffect "; def $0","=${v[64:95]}"()12  %vgpr3 = call <32 x i32> asm sideeffect "; def $0","=${v[96:127]}"()13  br i1 %cc, label %bb1, label %bb214 15bb1:16  %tmp = getelementptr inbounds float, ptr addrspace(3) %arg, i32 117  %tmp2 = load float, ptr addrspace(3) %tmp, align 418  %tmp3 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 219  %tmp4 = load float, ptr addrspace(3) %tmp3, align 420  %tmp5 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 321  %tmp6 = load float, ptr addrspace(3) %tmp5, align 422  %tmp7 = tail call float @llvm.fmuladd.f32(float %tmp2, float %tmp4, float %tmp6)23  %tmp8 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 524  %tmp9 = load float, ptr addrspace(3) %tmp8, align 425  %tmp10 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 626  %tmp11 = load float, ptr addrspace(3) %tmp10, align 427  %tmp12 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 728  %tmp13 = load float, ptr addrspace(3) %tmp12, align 429  %tmp14 = tail call float @llvm.fmuladd.f32(float %tmp9, float %tmp11, float %tmp13)30  %tmp15 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 931  %tmp16 = load float, ptr addrspace(3) %tmp15, align 432  %tmp17 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1033  %tmp18 = load float, ptr addrspace(3) %tmp17, align 434  %tmp19 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1135  %tmp20 = load float, ptr addrspace(3) %tmp19, align 436  %tmp21 = tail call float @llvm.fmuladd.f32(float %tmp16, float %tmp18, float %tmp20)37  %tmp22 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1338  %tmp23 = load float, ptr addrspace(3) %tmp22, align 439  %tmp24 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1440  %tmp25 = load float, ptr addrspace(3) %tmp24, align 441  %tmp26 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1542  %tmp27 = load float, ptr addrspace(3) %tmp26, align 443  %tmp28 = tail call float @llvm.fmuladd.f32(float %tmp23, float %tmp25, float %tmp27)44  %tmp29 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1745  %tmp30 = load float, ptr addrspace(3) %tmp29, align 446  %tmp31 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1847  %tmp32 = load float, ptr addrspace(3) %tmp31, align 448  %tmp33 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1949  %tmp34 = load float, ptr addrspace(3) %tmp33, align 450  %tmp35 = tail call float @llvm.fmuladd.f32(float %tmp30, float %tmp32, float %tmp34)51  %tmp36 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2152  %tmp37 = load float, ptr addrspace(3) %tmp36, align 453  %tmp38 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2254  %tmp39 = load float, ptr addrspace(3) %tmp38, align 455  %tmp40 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2356  %tmp41 = load float, ptr addrspace(3) %tmp40, align 457  %tmp42 = tail call float @llvm.fmuladd.f32(float %tmp37, float %tmp39, float %tmp41)58  %tmp43 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2559  %tmp44 = load float, ptr addrspace(3) %tmp43, align 460  %tmp45 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2661  %tmp46 = load float, ptr addrspace(3) %tmp45, align 462  %tmp47 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2763  %tmp48 = load float, ptr addrspace(3) %tmp47, align 464  %tmp49 = tail call float @llvm.fmuladd.f32(float %tmp44, float %tmp46, float %tmp48)65  %tmp50 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2966  %tmp51 = load float, ptr addrspace(3) %tmp50, align 467  %tmp52 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 3068  %tmp53 = load float, ptr addrspace(3) %tmp52, align 469  %tmp54 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 3170  %tmp55 = load float, ptr addrspace(3) %tmp54, align 471  %tmp56 = tail call float @llvm.fmuladd.f32(float %tmp51, float %tmp53, float %tmp55)72  %tmp57 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 3373  %tmp58 = load float, ptr addrspace(3) %tmp57, align 474  %tmp59 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 3475  %tmp60 = load float, ptr addrspace(3) %tmp59, align 476  %tmp61 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 3577  %tmp62 = load float, ptr addrspace(3) %tmp61, align 478  %tmp63 = tail call float @llvm.fmuladd.f32(float %tmp58, float %tmp60, float %tmp62)79  %tmp64 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 3780  %tmp65 = load float, ptr addrspace(3) %tmp64, align 481  %tmp66 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 3882  %tmp67 = load float, ptr addrspace(3) %tmp66, align 483  %tmp68 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 3984  %tmp69 = load float, ptr addrspace(3) %tmp68, align 485  %tmp70 = tail call float @llvm.fmuladd.f32(float %tmp65, float %tmp67, float %tmp69)86  %tmp71 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 4187  %tmp72 = load float, ptr addrspace(3) %tmp71, align 488  %tmp73 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 4289  %tmp74 = load float, ptr addrspace(3) %tmp73, align 490  %tmp75 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 4391  %tmp76 = load float, ptr addrspace(3) %tmp75, align 492  %tmp77 = tail call float @llvm.fmuladd.f32(float %tmp72, float %tmp74, float %tmp76)93  %tmp78 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 4594  %tmp79 = load float, ptr addrspace(3) %tmp78, align 495  %tmp80 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 4696  %tmp81 = load float, ptr addrspace(3) %tmp80, align 497  %tmp82 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 4798  %tmp83 = load float, ptr addrspace(3) %tmp82, align 499  %tmp84 = tail call float @llvm.fmuladd.f32(float %tmp79, float %tmp81, float %tmp83)100  %tmp85 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 49101  %tmp86 = load float, ptr addrspace(3) %tmp85, align 4102  %tmp87 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 50103  %tmp88 = load float, ptr addrspace(3) %tmp87, align 4104  %tmp89 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 51105  %tmp90 = load float, ptr addrspace(3) %tmp89, align 4106  %tmp91 = tail call float @llvm.fmuladd.f32(float %tmp86, float %tmp88, float %tmp90)107  %tmp92 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 53108  %tmp93 = load float, ptr addrspace(3) %tmp92, align 4109  %tmp94 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 54110  %tmp95 = load float, ptr addrspace(3) %tmp94, align 4111  %tmp96 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 55112  %tmp97 = load float, ptr addrspace(3) %tmp96, align 4113  %tmp98 = tail call float @llvm.fmuladd.f32(float %tmp93, float %tmp95, float %tmp97)114  %tmp99 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 57115  %tmp100 = load float, ptr addrspace(3) %tmp99, align 4116  %tmp101 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 58117  %tmp102 = load float, ptr addrspace(3) %tmp101, align 4118  %tmp103 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 59119  %tmp104 = load float, ptr addrspace(3) %tmp103, align 4120  %tmp105 = tail call float @llvm.fmuladd.f32(float %tmp100, float %tmp102, float %tmp104)121  %tmp106 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 61122  %tmp107 = load float, ptr addrspace(3) %tmp106, align 4123  %tmp108 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 62124  %tmp109 = load float, ptr addrspace(3) %tmp108, align 4125  %tmp110 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 63126  %tmp111 = load float, ptr addrspace(3) %tmp110, align 4127  %tmp112 = tail call float @llvm.fmuladd.f32(float %tmp107, float %tmp109, float %tmp111)128  %tmp113 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 65129  %tmp114 = load float, ptr addrspace(3) %tmp113, align 4130  %tmp115 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 66131  %tmp116 = load float, ptr addrspace(3) %tmp115, align 4132  %tmp117 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 67133  %tmp118 = load float, ptr addrspace(3) %tmp117, align 4134  %tmp119 = tail call float @llvm.fmuladd.f32(float %tmp114, float %tmp116, float %tmp118)135  %tmp120 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 69136  %tmp121 = load float, ptr addrspace(3) %tmp120, align 4137  %tmp122 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 70138  %tmp123 = load float, ptr addrspace(3) %tmp122, align 4139  %tmp124 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 71140  %tmp125 = load float, ptr addrspace(3) %tmp124, align 4141  %tmp126 = tail call float @llvm.fmuladd.f32(float %tmp121, float %tmp123, float %tmp125)142  %tmp127 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 73143  %tmp128 = load float, ptr addrspace(3) %tmp127, align 4144  %tmp129 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 74145  %tmp130 = load float, ptr addrspace(3) %tmp129, align 4146  %tmp131 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 75147  %tmp132 = load float, ptr addrspace(3) %tmp131, align 4148  %tmp133 = tail call float @llvm.fmuladd.f32(float %tmp128, float %tmp130, float %tmp132)149  %tmp134 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 77150  %tmp135 = load float, ptr addrspace(3) %tmp134, align 4151  %tmp136 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 78152  %tmp137 = load float, ptr addrspace(3) %tmp136, align 4153  %tmp138 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 79154  %tmp139 = load float, ptr addrspace(3) %tmp138, align 4155  %tmp140 = tail call float @llvm.fmuladd.f32(float %tmp135, float %tmp137, float %tmp139)156  %tmp141 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 81157  %tmp142 = load float, ptr addrspace(3) %tmp141, align 4158  %tmp143 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 82159  %tmp144 = load float, ptr addrspace(3) %tmp143, align 4160  %tmp145 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 83161  %tmp146 = load float, ptr addrspace(3) %tmp145, align 4162  %tmp147 = tail call float @llvm.fmuladd.f32(float %tmp142, float %tmp144, float %tmp146)163  %tmp148 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 85164  %tmp149 = load float, ptr addrspace(3) %tmp148, align 4165  %tmp150 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 86166  %tmp151 = load float, ptr addrspace(3) %tmp150, align 4167  %tmp152 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 87168  %tmp153 = load float, ptr addrspace(3) %tmp152, align 4169  %tmp154 = tail call float @llvm.fmuladd.f32(float %tmp149, float %tmp151, float %tmp153)170  %tmp155 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 89171  %tmp156 = load float, ptr addrspace(3) %tmp155, align 4172  %tmp157 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 90173  %tmp158 = load float, ptr addrspace(3) %tmp157, align 4174  %tmp159 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 91175  %tmp160 = load float, ptr addrspace(3) %tmp159, align 4176  %tmp161 = tail call float @llvm.fmuladd.f32(float %tmp156, float %tmp158, float %tmp160)177  %tmp162 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 93178  %tmp163 = load float, ptr addrspace(3) %tmp162, align 4179  %tmp164 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 94180  %tmp165 = load float, ptr addrspace(3) %tmp164, align 4181  %tmp166 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 95182  %tmp167 = load float, ptr addrspace(3) %tmp166, align 4183  %tmp168 = tail call float @llvm.fmuladd.f32(float %tmp163, float %tmp165, float %tmp167)184  %tmp169 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 97185  %tmp170 = load float, ptr addrspace(3) %tmp169, align 4186  %tmp171 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 98187  %tmp172 = load float, ptr addrspace(3) %tmp171, align 4188  %tmp173 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 99189  %tmp174 = load float, ptr addrspace(3) %tmp173, align 4190  %tmp175 = tail call float @llvm.fmuladd.f32(float %tmp170, float %tmp172, float %tmp174)191  %tmp176 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 101192  %tmp177 = load float, ptr addrspace(3) %tmp176, align 4193  %tmp178 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 102194  %tmp179 = load float, ptr addrspace(3) %tmp178, align 4195  %tmp180 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 103196  %tmp181 = load float, ptr addrspace(3) %tmp180, align 4197  %tmp182 = tail call float @llvm.fmuladd.f32(float %tmp177, float %tmp179, float %tmp181)198  %tmp183 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 105199  %tmp184 = load float, ptr addrspace(3) %tmp183, align 4200  %tmp185 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 106201  %tmp186 = load float, ptr addrspace(3) %tmp185, align 4202  %tmp187 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 107203  %tmp188 = load float, ptr addrspace(3) %tmp187, align 4204  %tmp189 = tail call float @llvm.fmuladd.f32(float %tmp184, float %tmp186, float %tmp188)205  %tmp190 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 109206  %tmp191 = load float, ptr addrspace(3) %tmp190, align 4207  %tmp192 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 110208  %tmp193 = load float, ptr addrspace(3) %tmp192, align 4209  %tmp194 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 111210  %tmp195 = load float, ptr addrspace(3) %tmp194, align 4211  %tmp196 = tail call float @llvm.fmuladd.f32(float %tmp191, float %tmp193, float %tmp195)212  %tmp197 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 113213  %tmp198 = load float, ptr addrspace(3) %tmp197, align 4214  %tmp199 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 114215  %tmp200 = load float, ptr addrspace(3) %tmp199, align 4216  %tmp201 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 115217  %tmp202 = load float, ptr addrspace(3) %tmp201, align 4218  %tmp203 = tail call float @llvm.fmuladd.f32(float %tmp198, float %tmp200, float %tmp202)219  %tmp204 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 117220  %tmp205 = load float, ptr addrspace(3) %tmp204, align 4221  %tmp206 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 118222  %tmp207 = load float, ptr addrspace(3) %tmp206, align 4223  %tmp208 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 119224  %tmp209 = load float, ptr addrspace(3) %tmp208, align 4225  %tmp210 = tail call float @llvm.fmuladd.f32(float %tmp205, float %tmp207, float %tmp209)226  store float %tmp7, ptr addrspace(1) %arg1, align 4227  %tmp449 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 1228  store float %tmp14, ptr addrspace(1) %tmp449, align 4229  %tmp450 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 2230  store float %tmp21, ptr addrspace(1) %tmp450, align 4231  %tmp451 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 3232  store float %tmp28, ptr addrspace(1) %tmp451, align 4233  %tmp452 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 4234  store float %tmp35, ptr addrspace(1) %tmp452, align 4235  %tmp453 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 5236  store float %tmp42, ptr addrspace(1) %tmp453, align 4237  %tmp454 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 6238  store float %tmp49, ptr addrspace(1) %tmp454, align 4239  %tmp455 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 7240  store float %tmp56, ptr addrspace(1) %tmp455, align 4241  %tmp456 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 8242  store float %tmp63, ptr addrspace(1) %tmp456, align 4243  %tmp457 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 9244  store float %tmp70, ptr addrspace(1) %tmp457, align 4245  %tmp458 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 10246  store float %tmp77, ptr addrspace(1) %tmp458, align 4247  %tmp459 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 11248  store float %tmp84, ptr addrspace(1) %tmp459, align 4249  %tmp460 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 12250  store float %tmp91, ptr addrspace(1) %tmp460, align 4251  %tmp461 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 13252  store float %tmp98, ptr addrspace(1) %tmp461, align 4253  %tmp462 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 14254  store float %tmp105, ptr addrspace(1) %tmp462, align 4255  %tmp463 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 15256  store float %tmp112, ptr addrspace(1) %tmp463, align 4257  %tmp464 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 16258  store float %tmp119, ptr addrspace(1) %tmp464, align 4259  %tmp465 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 17260  store float %tmp126, ptr addrspace(1) %tmp465, align 4261  %tmp466 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 18262  store float %tmp133, ptr addrspace(1) %tmp466, align 4263  %tmp467 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 19264  store float %tmp140, ptr addrspace(1) %tmp467, align 4265  %tmp468 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 20266  store float %tmp147, ptr addrspace(1) %tmp468, align 4267  %tmp469 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 21268  store float %tmp154, ptr addrspace(1) %tmp469, align 4269  %tmp470 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 22270  store float %tmp161, ptr addrspace(1) %tmp470, align 4271  %tmp471 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 23272  store float %tmp168, ptr addrspace(1) %tmp471, align 4273  %tmp472 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 24274  store float %tmp175, ptr addrspace(1) %tmp472, align 4275  %tmp473 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 25276  store float %tmp182, ptr addrspace(1) %tmp473, align 4277  %tmp474 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 26278  store float %tmp189, ptr addrspace(1) %tmp474, align 4279  %tmp475 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 27280  store float %tmp196, ptr addrspace(1) %tmp475, align 4281  %tmp476 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 28282  store float %tmp203, ptr addrspace(1) %tmp476, align 4283  %tmp477 = getelementptr inbounds float, ptr addrspace(1) %arg1, i64 29284  store float %tmp210, ptr addrspace(1) %tmp477, align 4285  br i1 %cc, label %bb1, label %bb2286 287bb2:288  call void asm sideeffect "; use $0","{v[0:31]}"(<32 x i32> %vgpr0)289  call void asm sideeffect "; use $0","{v[0:31]}"(<32 x i32> %vgpr1)290  call void asm sideeffect "; use $0","{v[0:31]}"(<32 x i32> %vgpr2)291  call void asm sideeffect "; use $0","{v[0:31]}"(<32 x i32> %vgpr3)292  ret void293}294 295declare float @llvm.fmuladd.f32(float, float, float)296