brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.4 KiB · 45415d2 Raw
111 lines · plain
1; REQUIRES: asserts2 3; RUN: llc -mtriple=amdgcn -mcpu=tonga -debug-only=machine-scheduler -filetype=null < %s 2>&1 | FileCheck %s4 5; We are only targeting one wave. Check that the machine scheduler doesn't use6; register pressure heuristics to prioritize any candidate instruction.7 8; CHECK-NOT: REG-CRIT9; CHECK-NOT: REG-EXCESS10 11define amdgpu_kernel void @load_fma_store(ptr addrspace(3) nocapture readonly %arg, ptr addrspace(3) nocapture %arg1) #1 {12bb:13  %tmp0 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 114  %tmp1 = load float, ptr addrspace(3) %tmp0, align 415  %tmp2 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 216  %tmp3 = load float, ptr addrspace(3) %tmp2, align 417  %tmp4 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 318  %tmp5 = load float, ptr addrspace(3) %tmp4, align 419  %tmp6 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 420  %tmp7 = load float, ptr addrspace(3) %tmp6, align 421  %tmp8 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 522  %tmp9 = load float, ptr addrspace(3) %tmp8, align 423  %tmp10 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 624  %tmp11 = load float, ptr addrspace(3) %tmp10, align 425  %tmp12 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 726  %tmp13 = load float, ptr addrspace(3) %tmp12, align 427  %tmp14 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 828  %tmp15 = load float, ptr addrspace(3) %tmp14, align 429  %tmp16 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 930  %tmp17 = load float, ptr addrspace(3) %tmp16, align 431  %tmp18 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1032  %tmp19 = load float, ptr addrspace(3) %tmp18, align 433  %tmp20 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1134  %tmp21 = load float, ptr addrspace(3) %tmp20, align 435  %tmp22 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1236  %tmp23 = load float, ptr addrspace(3) %tmp22, align 437  %tmp24 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1338  %tmp25 = load float, ptr addrspace(3) %tmp24, align 439  %tmp26 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1440  %tmp27 = load float, ptr addrspace(3) %tmp26, align 441  %tmp28 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1542  %tmp29 = load float, ptr addrspace(3) %tmp28, align 443  %tmp30 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1644  %tmp31 = load float, ptr addrspace(3) %tmp30, align 445  %tmp32 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1746  %tmp33 = load float, ptr addrspace(3) %tmp32, align 447  %tmp34 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1848  %tmp35 = load float, ptr addrspace(3) %tmp34, align 449  %tmp36 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 1950  %tmp37 = load float, ptr addrspace(3) %tmp36, align 451  %tmp38 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2052  %tmp39 = load float, ptr addrspace(3) %tmp38, align 453  %tmp40 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2154  %tmp41 = load float, ptr addrspace(3) %tmp40, align 455  %tmp42 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2256  %tmp43 = load float, ptr addrspace(3) %tmp42, align 457  %tmp44 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2358  %tmp45 = load float, ptr addrspace(3) %tmp44, align 459  %tmp46 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2460  %tmp47 = load float, ptr addrspace(3) %tmp46, align 461  %tmp48 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2562  %tmp49 = load float, ptr addrspace(3) %tmp48, align 463  %tmp50 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2664  %tmp51 = load float, ptr addrspace(3) %tmp50, align 465  %tmp52 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2766  %tmp53 = load float, ptr addrspace(3) %tmp52, align 467  %tmp54 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2868  %tmp55 = load float, ptr addrspace(3) %tmp54, align 469  %tmp56 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 2970  %tmp57 = load float, ptr addrspace(3) %tmp56, align 471  %tmp58 = getelementptr inbounds float, ptr addrspace(3) %arg, i32 3072  %tmp59 = load float, ptr addrspace(3) %tmp58, align 473  %tmp60 = tail call float @llvm.fmuladd.f32(float %tmp1, float %tmp3, float %tmp5)74  %tmp61 = tail call float @llvm.fmuladd.f32(float %tmp7, float %tmp9, float %tmp11)75  %tmp62 = tail call float @llvm.fmuladd.f32(float %tmp13, float %tmp15, float %tmp17)76  %tmp63 = tail call float @llvm.fmuladd.f32(float %tmp19, float %tmp21, float %tmp23)77  %tmp64 = tail call float @llvm.fmuladd.f32(float %tmp25, float %tmp27, float %tmp29)78  %tmp65 = tail call float @llvm.fmuladd.f32(float %tmp31, float %tmp33, float %tmp35)79  %tmp66 = tail call float @llvm.fmuladd.f32(float %tmp37, float %tmp39, float %tmp41)80  %tmp67 = tail call float @llvm.fmuladd.f32(float %tmp43, float %tmp45, float %tmp47)81  %tmp68 = tail call float @llvm.fmuladd.f32(float %tmp49, float %tmp51, float %tmp53)82  %tmp69 = tail call float @llvm.fmuladd.f32(float %tmp55, float %tmp57, float %tmp59)83  %tmp70 = getelementptr inbounds float, ptr addrspace(3) %arg1, i64 184  store float %tmp60, ptr addrspace(3) %tmp70, align 485  %tmp71 = getelementptr inbounds float, ptr addrspace(3) %arg1, i64 286  store float %tmp61, ptr addrspace(3) %tmp71, align 487  %tmp72 = getelementptr inbounds float, ptr addrspace(3) %arg1, i64 388  store float %tmp62, ptr addrspace(3) %tmp72, align 489  %tmp73 = getelementptr inbounds float, ptr addrspace(3) %arg1, i64 490  store float %tmp63, ptr addrspace(3) %tmp73, align 491  %tmp74 = getelementptr inbounds float, ptr addrspace(3) %arg1, i64 592  store float %tmp64, ptr addrspace(3) %tmp74, align 493  %tmp75 = getelementptr inbounds float, ptr addrspace(3) %arg1, i64 694  store float %tmp65, ptr addrspace(3) %tmp75, align 495  %tmp76 = getelementptr inbounds float, ptr addrspace(3) %arg1, i64 796  store float %tmp66, ptr addrspace(3) %tmp76, align 497  %tmp77 = getelementptr inbounds float, ptr addrspace(3) %arg1, i64 898  store float %tmp67, ptr addrspace(3) %tmp77, align 499  %tmp78 = getelementptr inbounds float, ptr addrspace(3) %arg1, i64 9100  store float %tmp68, ptr addrspace(3) %tmp78, align 4101  %tmp79 = getelementptr inbounds float, ptr addrspace(3) %arg1, i64 10102  store float %tmp69, ptr addrspace(3) %tmp79, align 4103  ret void104}105 106; Function Attrs: nounwind readnone107declare float @llvm.fmuladd.f32(float, float, float) #0108 109attributes #0 = { nounwind readnone }110attributes #1 = { "amdgpu-waves-per-eu"="1,1" "amdgpu-flat-work-group-size"="1,256" }111