diff options
Diffstat (limited to 'test/CodeGen/PowerPC/ppc64le-smallarg.ll')
| -rw-r--r-- | test/CodeGen/PowerPC/ppc64le-smallarg.ll | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/test/CodeGen/PowerPC/ppc64le-smallarg.ll b/test/CodeGen/PowerPC/ppc64le-smallarg.ll deleted file mode 100644 index 0e871c358869..000000000000 --- a/test/CodeGen/PowerPC/ppc64le-smallarg.ll +++ /dev/null @@ -1,61 +0,0 @@ -; Verify that small structures and float arguments are passed in the -; least significant part of a stack slot doubleword. - -; RUN: llc -verify-machineinstrs < %s | FileCheck %s - -target datalayout = "e-m:e-i64:64-n32:64" -target triple = "powerpc64le-unknown-linux-gnu" - -%struct.large_arg = type { [8 x i64] } -%struct.small_arg = type { i16, i8 } - -@gl = common global %struct.large_arg zeroinitializer, align 8 -@gs = common global %struct.small_arg zeroinitializer, align 2 -@gf = common global float 0.000000e+00, align 4 - -define void @callee1(%struct.small_arg* noalias nocapture sret %agg.result, %struct.large_arg* byval nocapture readnone %pad, %struct.small_arg* byval nocapture readonly %x) { -entry: - %0 = bitcast %struct.small_arg* %x to i32* - %1 = bitcast %struct.small_arg* %agg.result to i32* - %2 = load i32, i32* %0, align 2 - store i32 %2, i32* %1, align 2 - ret void -} -; CHECK: @callee1 -; CHECK: lwz {{[0-9]+}}, 104(1) -; CHECK: blr - -define void @caller1() { -entry: - %tmp = alloca %struct.small_arg, align 2 - call void @test1(%struct.small_arg* sret %tmp, %struct.large_arg* byval @gl, %struct.small_arg* byval @gs) - ret void -} -; CHECK: @caller1 -; CHECK: stw {{[0-9]+}}, 104(1) -; CHECK: bl test1 - -declare void @test1(%struct.small_arg* sret, %struct.large_arg* byval, %struct.small_arg* byval) - -define float @callee2(float %pad1, float %pad2, float %pad3, float %pad4, float %pad5, float %pad6, float %pad7, float %pad8, float %pad9, float %pad10, float %pad11, float %pad12, float %pad13, float %x) { -entry: - ret float %x -} -; CHECK: @callee2 -; CHECK: addi [[TOCREG:[0-9]+]], 1, 136 -; CHECK: lxsspx {{[0-9]+}}, {{[0-9]+}}, [[TOCREG]] -; CHECK: blr - -define void @caller2() { -entry: - %0 = load float, float* @gf, align 4 - %call = tail call float @test2(float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float 0.000000e+00, float %0) - ret void -} -; CHECK: @caller2 -; CHECK: li [[TOCOFF:[0-9]+]], 136 -; CHECK: stxsspx {{[0-9]+}}, 1, [[TOCOFF]] -; CHECK: bl test2 - -declare float @test2(float, float, float, float, float, float, float, float, float, float, float, float, float, float) - |
