brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · ea8edab Raw
50 lines · plain
1; RUN: llc < %s -mcpu=cortex-a8 | FileCheck %s2target triple = "thumbv7-apple-ios"3 4; CHECK: local_split5;6; The load must go into d0-15 which are all clobbered by the asm.7; RAGreedy should split the range and use d16-d31 to avoid a spill.8;9; CHECK: vldr s10; CHECK-NOT: vstr11; CHECK: vadd.f3212; CHECK-NOT: vstr13; CHECK: vorr14; CHECK: vstr s15define void @local_split(ptr nocapture %p) nounwind ssp {16entry:17  %x = load float, ptr %p, align 418  %a = fadd float %x, 1.019  tail call void asm sideeffect "", "~{d0},~{d1},~{d2},~{d3},~{d4},~{d5},~{d6},~{d7},~{d8},~{d9},~{d10},~{d11},~{d12},~{d13},~{d14},~{d15}"() nounwind20  store float %a, ptr %p, align 421  ret void22}23 24; CHECK: global_split25;26; Same thing, but across basic blocks.27;28; CHECK: vldr s29; CHECK-NOT: vstr30; CHECK: vadd.f3231; CHECK-NOT: vstr32; CHECK: vorr33; CHECK: vstr s34define void @global_split(ptr nocapture %p1, ptr nocapture %p2) nounwind ssp {35entry:36  %0 = load float, ptr %p1, align 437  %add = fadd float %0, 1.000000e+0038  tail call void asm sideeffect "", "~{d0},~{d1},~{d2},~{d3},~{d4},~{d5},~{d6},~{d7},~{d8},~{d9},~{d10},~{d11},~{d12},~{d13},~{d14},~{d15}"() nounwind39  %cmp = fcmp ogt float %add, 0.000000e+0040  br i1 %cmp, label %if.then, label %if.end41 42if.then:43  store float %add, ptr %p2, align 444  br label %if.end45 46if.end:47  store float %add, ptr %p1, align 448  ret void49}50