brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · acb31ef Raw
60 lines · plain
1; RUN: llc -verify-machineinstrs -mcpu=pwr7 < %s | FileCheck %s2target datalayout = "e-m:e-i64:64-n32:64"3target triple = "powerpc64le-unknown-linux-gnu"4 5; Make sure that we don't generate a std r, 0(0) -- the memory address cannot6; be stored in r0.7; CHECK-LABEL: @test18; CHECK-NOT: std {{[0-9]+}}, 0(0) 9; CHECK: blr10 11define void @test1({ ptr, ptr } %fn_arg) {12  %fn = alloca { ptr, ptr }13  %sp = alloca ptr, align 814  %regs = alloca [18 x i64], align 815  store { ptr, ptr } %fn_arg, ptr %fn16  call void asm sideeffect "std  14, $0", "=*m"(ptr elementtype(i64) %regs)17  %1 = getelementptr i8, ptr %regs, i32 818  call void asm sideeffect "std  15, $0", "=*m"(ptr elementtype(i64) %1)19  %2 = getelementptr i8, ptr %regs, i32 1620  call void asm sideeffect "std  16, $0", "=*m"(ptr elementtype(i64) %2)21  %3 = getelementptr i8, ptr %regs, i32 2422  call void asm sideeffect "std  17, $0", "=*m"(ptr elementtype(i64) %3)23  %4 = getelementptr i8, ptr %regs, i32 3224  call void asm sideeffect "std  18, $0", "=*m"(ptr elementtype(i64) %4)25  %5 = getelementptr i8, ptr %regs, i32 4026  call void asm sideeffect "std  19, $0", "=*m"(ptr elementtype(i64) %5)27  %6 = getelementptr i8, ptr %regs, i32 4828  call void asm sideeffect "std  20, $0", "=*m"(ptr elementtype(i64) %6)29  %7 = getelementptr i8, ptr %regs, i32 5630  call void asm sideeffect "std  21, $0", "=*m"(ptr elementtype(i64) %7)31  %8 = getelementptr i8, ptr %regs, i32 6432  call void asm sideeffect "std  22, $0", "=*m"(ptr elementtype(i64) %8)33  %9 = getelementptr i8, ptr %regs, i32 7234  call void asm sideeffect "std  23, $0", "=*m"(ptr elementtype(i64) %9)35  %10 = getelementptr i8, ptr %regs, i32 8036  call void asm sideeffect "std  24, $0", "=*m"(ptr elementtype(i64) %10)37  %11 = getelementptr i8, ptr %regs, i32 8838  call void asm sideeffect "std  25, $0", "=*m"(ptr elementtype(i64) %11)39  %12 = getelementptr i8, ptr %regs, i32 9640  call void asm sideeffect "std  26, $0", "=*m"(ptr elementtype(i64) %12)41  %13 = getelementptr i8, ptr %regs, i32 10442  call void asm sideeffect "std  27, $0", "=*m"(ptr elementtype(i64) %13)43  %14 = getelementptr i8, ptr %regs, i32 11244  call void asm sideeffect "std  28, $0", "=*m"(ptr elementtype(i64) %14)45  %15 = getelementptr i8, ptr %regs, i32 12046  call void asm sideeffect "std  29, $0", "=*m"(ptr elementtype(i64) %15)47  %16 = getelementptr i8, ptr %regs, i32 12848  call void asm sideeffect "std  30, $0", "=*m"(ptr elementtype(i64) %16)49  %17 = getelementptr i8, ptr %regs, i32 13650  call void asm sideeffect "std  31, $0", "=*m"(ptr elementtype(i64) %17)51  %18 = getelementptr { ptr, ptr }, ptr %fn, i32 0, i32 152  %.funcptr = load ptr, ptr %1853  %19 = getelementptr { ptr, ptr }, ptr %fn, i32 0, i32 054  %.ptr = load ptr, ptr %1955  %20 = load ptr, ptr %sp56  call void %.funcptr(ptr %.ptr, ptr %20)57  ret void58}59 60