summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/GlobalISel/irtranslator-callingconv.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/X86/GlobalISel/irtranslator-callingconv.ll')
-rw-r--r--llvm/test/CodeGen/X86/GlobalISel/irtranslator-callingconv.ll27
1 files changed, 18 insertions, 9 deletions
diff --git a/llvm/test/CodeGen/X86/GlobalISel/irtranslator-callingconv.ll b/llvm/test/CodeGen/X86/GlobalISel/irtranslator-callingconv.ll
index 6d13d6f3951..706a63ec142 100644
--- a/llvm/test/CodeGen/X86/GlobalISel/irtranslator-callingconv.ll
+++ b/llvm/test/CodeGen/X86/GlobalISel/irtranslator-callingconv.ll
@@ -222,14 +222,18 @@ define float @test_float_args(float %arg1, float %arg2) {
; X32: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (invariant load 4 from %fixed-stack.1, align 0)
; X32: [[FRAME_INDEX1:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0
; X32: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX1]](p0) :: (invariant load 4 from %fixed-stack.0, align 0)
- ; X32: $fp0 = COPY [[LOAD1]](s32)
+ ; X32: [[ANYEXT:%[0-9]+]]:_(s80) = G_ANYEXT [[LOAD1]](s32)
+ ; X32: $fp0 = COPY [[ANYEXT]](s80)
; X32: RET 0, implicit $fp0
; X64-LABEL: name: test_float_args
; X64: bb.1 (%ir-block.0):
; X64: liveins: $xmm0, $xmm1
- ; X64: [[COPY:%[0-9]+]]:_(s32) = COPY $xmm0
- ; X64: [[COPY1:%[0-9]+]]:_(s32) = COPY $xmm1
- ; X64: $xmm0 = COPY [[COPY1]](s32)
+ ; X64: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0
+ ; X64: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)
+ ; X64: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1
+ ; X64: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)
+ ; X64: [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[TRUNC1]](s32)
+ ; X64: $xmm0 = COPY [[ANYEXT]](s128)
; X64: RET 0, implicit $xmm0
ret float %arg2
}
@@ -241,14 +245,18 @@ define double @test_double_args(double %arg1, double %arg2) {
; X32: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[FRAME_INDEX]](p0) :: (invariant load 8 from %fixed-stack.1, align 0)
; X32: [[FRAME_INDEX1:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0
; X32: [[LOAD1:%[0-9]+]]:_(s64) = G_LOAD [[FRAME_INDEX1]](p0) :: (invariant load 8 from %fixed-stack.0, align 0)
- ; X32: $fp0 = COPY [[LOAD1]](s64)
+ ; X32: [[ANYEXT:%[0-9]+]]:_(s80) = G_ANYEXT [[LOAD1]](s64)
+ ; X32: $fp0 = COPY [[ANYEXT]](s80)
; X32: RET 0, implicit $fp0
; X64-LABEL: name: test_double_args
; X64: bb.1 (%ir-block.0):
; X64: liveins: $xmm0, $xmm1
- ; X64: [[COPY:%[0-9]+]]:_(s64) = COPY $xmm0
- ; X64: [[COPY1:%[0-9]+]]:_(s64) = COPY $xmm1
- ; X64: $xmm0 = COPY [[COPY1]](s64)
+ ; X64: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0
+ ; X64: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)
+ ; X64: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1
+ ; X64: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)
+ ; X64: [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[TRUNC1]](s64)
+ ; X64: $xmm0 = COPY [[ANYEXT]](s128)
; X64: RET 0, implicit $xmm0
ret double %arg2
}
@@ -684,7 +692,8 @@ define void @test_variadic_call_2(i8** %addr_ptr, double* %val_ptr) {
; X64: [[LOAD1:%[0-9]+]]:_(s64) = G_LOAD [[COPY1]](p0) :: (load 8 from %ir.val_ptr)
; X64: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def $rsp, implicit-def $eflags, implicit-def $ssp, implicit $rsp, implicit $ssp
; X64: $rdi = COPY [[LOAD]](p0)
- ; X64: $xmm0 = COPY [[LOAD1]](s64)
+ ; X64: [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[LOAD1]](s64)
+ ; X64: $xmm0 = COPY [[ANYEXT]](s128)
; X64: $al = MOV8ri 1
; X64: CALL64pcrel32 @variadic_callee, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, implicit $xmm0, implicit $al
; X64: ADJCALLSTACKUP64 0, 0, implicit-def $rsp, implicit-def $eflags, implicit-def $ssp, implicit $rsp, implicit $ssp
OpenPOWER on IntegriCloud