diff options
Diffstat (limited to 'llvm/test/CodeGen/ARM/GlobalISel/arm-unsupported.ll')
-rw-r--r-- | llvm/test/CodeGen/ARM/GlobalISel/arm-unsupported.ll | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/llvm/test/CodeGen/ARM/GlobalISel/arm-unsupported.ll b/llvm/test/CodeGen/ARM/GlobalISel/arm-unsupported.ll index ef30cb1063f..34f00aebe1b 100644 --- a/llvm/test/CodeGen/ARM/GlobalISel/arm-unsupported.ll +++ b/llvm/test/CodeGen/ARM/GlobalISel/arm-unsupported.ll @@ -54,10 +54,15 @@ define [16 x i32] @test_ret_demotion() { ret [16 x i32] %res } -define void @test_structs({i32, i32} %struct) { -; CHECK: remark: {{.*}} unable to lower arguments: void ({ i32, i32 })* -; CHECK-LABEL: warning: Instruction selection used fallback path for test_structs - ret void +%large.struct = type { i32, i32, i32, i32, i32} ; Doesn't fit in R0-R3 + +declare %large.struct @large_struct_return_target() + +define %large.struct @test_large_struct_return() { +; CHECK: remark: {{.*}} unable to translate instruction: call{{.*}} @large_struct_return_target +; CHECK-LABEL: warning: Instruction selection used fallback path for test_large_struct_return + %r = call %large.struct @large_struct_return_target() + ret %large.struct %r } define void @test_vararg_definition(i32 %a, ...) { |