diff options
Diffstat (limited to 'test/CodeGen/Mips/llvm-ir/call.ll')
| -rw-r--r-- | test/CodeGen/Mips/llvm-ir/call.ll | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/test/CodeGen/Mips/llvm-ir/call.ll b/test/CodeGen/Mips/llvm-ir/call.ll index 112ab8ee8c7fe..22a44da0b0696 100644 --- a/test/CodeGen/Mips/llvm-ir/call.ll +++ b/test/CodeGen/Mips/llvm-ir/call.ll @@ -6,6 +6,7 @@ ; RUN: llc -march=mips -mcpu=mips32r3 -enable-mips-tail-calls < %s | FileCheck %s -check-prefix=ALL -check-prefix=O32 ; RUN: llc -march=mips -mcpu=mips32r5 -enable-mips-tail-calls < %s | FileCheck %s -check-prefix=ALL -check-prefix=O32 ; RUN: llc -march=mips -mcpu=mips32r6 -enable-mips-tail-calls < %s | FileCheck %s -check-prefix=ALL -check-prefix=O32 +; RUN: llc -march=mips -mcpu=mips32r6 -mattr=+fp64,+nooddspreg -enable-mips-tail-calls < %s | FileCheck %s -check-prefix=ALL -check-prefix=O32 ; RUN: llc -march=mips64 -mcpu=mips4 -enable-mips-tail-calls < %s | FileCheck %s -check-prefix=ALL -check-prefix=N64 ; RUN: llc -march=mips64 -mcpu=mips64 -enable-mips-tail-calls < %s | FileCheck %s -check-prefix=ALL -check-prefix=N64 ; RUN: llc -march=mips64 -mcpu=mips64r2 -enable-mips-tail-calls < %s | FileCheck %s -check-prefix=ALL -check-prefix=N64 @@ -168,3 +169,16 @@ define float @tail_indirect_call_float_void(float ()* %addr) { %1 = tail call float %addr() ret float %1 } + +; Check that passing undef as a double value doesn't cause machine code errors +; for FP64. +declare hidden void @undef_double(i32 %this, double %volume) unnamed_addr align 2 + +define hidden void @thunk_undef_double(i32 %this, double %volume) unnamed_addr align 2 { +; ALL-LABEL: thunk_undef_double: +; O32: # implicit-def: %A2 +; O32: # implicit-def: %A3 +; ALL: jr $25 + tail call void @undef_double(i32 undef, double undef) #8 + ret void +} |
