[llvm] aa7e873 - [AArch64] Regenerate fmin/fmax/memcpy legalization tests. NFC
David Green via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 1 11:04:37 PST 2023
Author: David Green
Date: 2023-12-01T19:04:29Z
New Revision: aa7e873f2f52938ffa4d4711dbe494feb49535c8
URL: https://github.com/llvm/llvm-project/commit/aa7e873f2f52938ffa4d4711dbe494feb49535c8
DIFF: https://github.com/llvm/llvm-project/commit/aa7e873f2f52938ffa4d4711dbe494feb49535c8.diff
LOG: [AArch64] Regenerate fmin/fmax/memcpy legalization tests. NFC
Added:
Modified:
llvm/test/CodeGen/AArch64/GlobalISel/legalize-fmaxnum.mir
llvm/test/CodeGen/AArch64/GlobalISel/legalize-fminnum.mir
llvm/test/CodeGen/AArch64/GlobalISel/legalize-memcpy-et-al.mir
Removed:
################################################################################
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-fmaxnum.mir b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-fmaxnum.mir
index f947923e7e569c7..01b60f5584062c2 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-fmaxnum.mir
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-fmaxnum.mir
@@ -9,20 +9,25 @@ body: |
bb.0:
liveins: $h0, $h1
; FP16-LABEL: name: s16_legal_with_full_fp16
- ; FP16: %a:_(s16) = COPY $h0
- ; FP16: %b:_(s16) = COPY $h1
- ; FP16: %maxnum:_(s16) = G_FMAXNUM %a, %b
- ; FP16: $h0 = COPY %maxnum(s16)
- ; FP16: RET_ReallyLR implicit $h0
+ ; FP16: liveins: $h0, $h1
+ ; FP16-NEXT: {{ $}}
+ ; FP16-NEXT: %a:_(s16) = COPY $h0
+ ; FP16-NEXT: %b:_(s16) = COPY $h1
+ ; FP16-NEXT: %maxnum:_(s16) = G_FMAXNUM %a, %b
+ ; FP16-NEXT: $h0 = COPY %maxnum(s16)
+ ; FP16-NEXT: RET_ReallyLR implicit $h0
+ ;
; NO-FP16-LABEL: name: s16_legal_with_full_fp16
- ; NO-FP16: %a:_(s16) = COPY $h0
- ; NO-FP16: %b:_(s16) = COPY $h1
- ; NO-FP16: [[FPEXT:%[0-9]+]]:_(s32) = G_FPEXT %a(s16)
- ; NO-FP16: [[FPEXT1:%[0-9]+]]:_(s32) = G_FPEXT %b(s16)
- ; NO-FP16: [[FMAXNUM:%[0-9]+]]:_(s32) = G_FMAXNUM [[FPEXT]], [[FPEXT1]]
- ; NO-FP16: %maxnum:_(s16) = G_FPTRUNC [[FMAXNUM]](s32)
- ; NO-FP16: $h0 = COPY %maxnum(s16)
- ; NO-FP16: RET_ReallyLR implicit $h0
+ ; NO-FP16: liveins: $h0, $h1
+ ; NO-FP16-NEXT: {{ $}}
+ ; NO-FP16-NEXT: %a:_(s16) = COPY $h0
+ ; NO-FP16-NEXT: %b:_(s16) = COPY $h1
+ ; NO-FP16-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = G_FPEXT %a(s16)
+ ; NO-FP16-NEXT: [[FPEXT1:%[0-9]+]]:_(s32) = G_FPEXT %b(s16)
+ ; NO-FP16-NEXT: [[FMAXNUM:%[0-9]+]]:_(s32) = G_FMAXNUM [[FPEXT]], [[FPEXT1]]
+ ; NO-FP16-NEXT: %maxnum:_(s16) = G_FPTRUNC [[FMAXNUM]](s32)
+ ; NO-FP16-NEXT: $h0 = COPY %maxnum(s16)
+ ; NO-FP16-NEXT: RET_ReallyLR implicit $h0
%a:_(s16) = COPY $h0
%b:_(s16) = COPY $h1
%maxnum:_(s16) = G_FMAXNUM %a, %b
@@ -37,17 +42,22 @@ body: |
bb.0:
liveins: $s0, $s1
; FP16-LABEL: name: s32_legal
- ; FP16: %a:_(s32) = COPY $s0
- ; FP16: %b:_(s32) = COPY $s1
- ; FP16: %maxnum:_(s32) = G_FMAXNUM %a, %b
- ; FP16: $s0 = COPY %maxnum(s32)
- ; FP16: RET_ReallyLR implicit $s0
+ ; FP16: liveins: $s0, $s1
+ ; FP16-NEXT: {{ $}}
+ ; FP16-NEXT: %a:_(s32) = COPY $s0
+ ; FP16-NEXT: %b:_(s32) = COPY $s1
+ ; FP16-NEXT: %maxnum:_(s32) = G_FMAXNUM %a, %b
+ ; FP16-NEXT: $s0 = COPY %maxnum(s32)
+ ; FP16-NEXT: RET_ReallyLR implicit $s0
+ ;
; NO-FP16-LABEL: name: s32_legal
- ; NO-FP16: %a:_(s32) = COPY $s0
- ; NO-FP16: %b:_(s32) = COPY $s1
- ; NO-FP16: %maxnum:_(s32) = G_FMAXNUM %a, %b
- ; NO-FP16: $s0 = COPY %maxnum(s32)
- ; NO-FP16: RET_ReallyLR implicit $s0
+ ; NO-FP16: liveins: $s0, $s1
+ ; NO-FP16-NEXT: {{ $}}
+ ; NO-FP16-NEXT: %a:_(s32) = COPY $s0
+ ; NO-FP16-NEXT: %b:_(s32) = COPY $s1
+ ; NO-FP16-NEXT: %maxnum:_(s32) = G_FMAXNUM %a, %b
+ ; NO-FP16-NEXT: $s0 = COPY %maxnum(s32)
+ ; NO-FP16-NEXT: RET_ReallyLR implicit $s0
%a:_(s32) = COPY $s0
%b:_(s32) = COPY $s1
%maxnum:_(s32) = G_FMAXNUM %a, %b
@@ -62,17 +72,22 @@ body: |
bb.0:
liveins: $d0, $d1
; FP16-LABEL: name: s64_legal
- ; FP16: %a:_(s64) = COPY $d0
- ; FP16: %b:_(s64) = COPY $d1
- ; FP16: %maxnum:_(s64) = G_FMAXNUM %a, %b
- ; FP16: $d0 = COPY %maxnum(s64)
- ; FP16: RET_ReallyLR implicit $d0
+ ; FP16: liveins: $d0, $d1
+ ; FP16-NEXT: {{ $}}
+ ; FP16-NEXT: %a:_(s64) = COPY $d0
+ ; FP16-NEXT: %b:_(s64) = COPY $d1
+ ; FP16-NEXT: %maxnum:_(s64) = G_FMAXNUM %a, %b
+ ; FP16-NEXT: $d0 = COPY %maxnum(s64)
+ ; FP16-NEXT: RET_ReallyLR implicit $d0
+ ;
; NO-FP16-LABEL: name: s64_legal
- ; NO-FP16: %a:_(s64) = COPY $d0
- ; NO-FP16: %b:_(s64) = COPY $d1
- ; NO-FP16: %maxnum:_(s64) = G_FMAXNUM %a, %b
- ; NO-FP16: $d0 = COPY %maxnum(s64)
- ; NO-FP16: RET_ReallyLR implicit $d0
+ ; NO-FP16: liveins: $d0, $d1
+ ; NO-FP16-NEXT: {{ $}}
+ ; NO-FP16-NEXT: %a:_(s64) = COPY $d0
+ ; NO-FP16-NEXT: %b:_(s64) = COPY $d1
+ ; NO-FP16-NEXT: %maxnum:_(s64) = G_FMAXNUM %a, %b
+ ; NO-FP16-NEXT: $d0 = COPY %maxnum(s64)
+ ; NO-FP16-NEXT: RET_ReallyLR implicit $d0
%a:_(s64) = COPY $d0
%b:_(s64) = COPY $d1
%maxnum:_(s64) = G_FMAXNUM %a, %b
@@ -87,27 +102,32 @@ body: |
bb.0:
liveins: $q0, $q1
; FP16-LABEL: name: s128_libcall
- ; FP16: %a:_(s128) = COPY $q0
- ; FP16: %b:_(s128) = COPY $q1
- ; FP16: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
- ; FP16: $q0 = COPY %a(s128)
- ; FP16: $q1 = COPY %b(s128)
- ; FP16: BL &fmaxl, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $q0, implicit $q1, implicit-def $q0
- ; FP16: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
- ; FP16: %maxnum:_(s128) = COPY $q0
- ; FP16: $q0 = COPY %maxnum(s128)
- ; FP16: RET_ReallyLR implicit $q0
+ ; FP16: liveins: $q0, $q1
+ ; FP16-NEXT: {{ $}}
+ ; FP16-NEXT: %a:_(s128) = COPY $q0
+ ; FP16-NEXT: %b:_(s128) = COPY $q1
+ ; FP16-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+ ; FP16-NEXT: $q0 = COPY %a(s128)
+ ; FP16-NEXT: $q1 = COPY %b(s128)
+ ; FP16-NEXT: BL &fmaxl, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $q0, implicit $q1, implicit-def $q0
+ ; FP16-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+ ; FP16-NEXT: %maxnum:_(s128) = COPY $q0
+ ; FP16-NEXT: $q0 = COPY %maxnum(s128)
+ ; FP16-NEXT: RET_ReallyLR implicit $q0
+ ;
; NO-FP16-LABEL: name: s128_libcall
- ; NO-FP16: %a:_(s128) = COPY $q0
- ; NO-FP16: %b:_(s128) = COPY $q1
- ; NO-FP16: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
- ; NO-FP16: $q0 = COPY %a(s128)
- ; NO-FP16: $q1 = COPY %b(s128)
- ; NO-FP16: BL &fmaxl, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $q0, implicit $q1, implicit-def $q0
- ; NO-FP16: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
- ; NO-FP16: %maxnum:_(s128) = COPY $q0
- ; NO-FP16: $q0 = COPY %maxnum(s128)
- ; NO-FP16: RET_ReallyLR implicit $q0
+ ; NO-FP16: liveins: $q0, $q1
+ ; NO-FP16-NEXT: {{ $}}
+ ; NO-FP16-NEXT: %a:_(s128) = COPY $q0
+ ; NO-FP16-NEXT: %b:_(s128) = COPY $q1
+ ; NO-FP16-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+ ; NO-FP16-NEXT: $q0 = COPY %a(s128)
+ ; NO-FP16-NEXT: $q1 = COPY %b(s128)
+ ; NO-FP16-NEXT: BL &fmaxl, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $q0, implicit $q1, implicit-def $q0
+ ; NO-FP16-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+ ; NO-FP16-NEXT: %maxnum:_(s128) = COPY $q0
+ ; NO-FP16-NEXT: $q0 = COPY %maxnum(s128)
+ ; NO-FP16-NEXT: RET_ReallyLR implicit $q0
%a:_(s128) = COPY $q0
%b:_(s128) = COPY $q1
%maxnum:_(s128) = G_FMAXNUM %a, %b
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-fminnum.mir b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-fminnum.mir
index d9695e01aa30aa5..2d6f9f9e774c7d6 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-fminnum.mir
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-fminnum.mir
@@ -130,6 +130,16 @@ alignment: 4
body: |
bb.1.entry:
liveins: $q0, $q1
+ ; CHECK-LABEL: name: v3s32_widen
+ ; CHECK: liveins: $q0, $q1
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0
+ ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(<4 x s32>) = G_BITCAST [[COPY]](<2 x s64>)
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $q1
+ ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(<4 x s32>) = G_BITCAST [[COPY1]](<2 x s64>)
+ ; CHECK-NEXT: [[FMINNUM:%[0-9]+]]:_(<4 x s32>) = G_FMINNUM [[BITCAST]], [[BITCAST1]]
+ ; CHECK-NEXT: $q0 = COPY [[FMINNUM]](<4 x s32>)
+ ; CHECK-NEXT: RET_ReallyLR implicit $q0
%2:_(<2 x s64>) = COPY $q0
%3:_(<4 x s32>) = G_BITCAST %2:_(<2 x s64>)
%4:_(s32), %5:_(s32), %6:_(s32), %7:_(s32) = G_UNMERGE_VALUES %3:_(<4 x s32>)
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-memcpy-et-al.mir b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-memcpy-et-al.mir
index 627b98bef44a363..ef09ce3fa77a9c5 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-memcpy-et-al.mir
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-memcpy-et-al.mir
@@ -10,17 +10,18 @@ body: |
; CHECK-LABEL: name: test_memcpy
; CHECK: liveins: $w2, $x0, $x1
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
- ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
- ; CHECK: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY2]](s32)
- ; CHECK: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: $x0 = COPY [[COPY]](p0)
- ; CHECK: $x1 = COPY [[COPY1]](p0)
- ; CHECK: $x2 = COPY [[ZEXT]](s64)
- ; CHECK: BL &memcpy, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
- ; CHECK: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: RET_ReallyLR
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
+ ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY2]](s32)
+ ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: $x1 = COPY [[COPY1]](p0)
+ ; CHECK-NEXT: $x2 = COPY [[ZEXT]](s64)
+ ; CHECK-NEXT: BL &memcpy, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
+ ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: RET_ReallyLR
%0:_(p0) = COPY $x0
%1:_(p0) = COPY $x1
%2:_(s32) = COPY $w2
@@ -38,14 +39,15 @@ body: |
; CHECK-LABEL: name: test_memcpy_tail
; CHECK: liveins: $w2, $x0, $x1
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
- ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
- ; CHECK: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY2]](s32)
- ; CHECK: $x0 = COPY [[COPY]](p0)
- ; CHECK: $x1 = COPY [[COPY1]](p0)
- ; CHECK: $x2 = COPY [[ZEXT]](s64)
- ; CHECK: TCRETURNdi &memcpy, 0, csr_aarch64_aapcs, implicit $sp, implicit $x0, implicit $x1, implicit $x2
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
+ ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY2]](s32)
+ ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: $x1 = COPY [[COPY1]](p0)
+ ; CHECK-NEXT: $x2 = COPY [[ZEXT]](s64)
+ ; CHECK-NEXT: TCRETURNdi &memcpy, 0, csr_aarch64_aapcs, implicit $sp, implicit $x0, implicit $x1, implicit $x2
%0:_(p0) = COPY $x0
%1:_(p0) = COPY $x1
%2:_(s32) = COPY $w2
@@ -63,17 +65,18 @@ body: |
; CHECK-LABEL: name: test_memmove
; CHECK: liveins: $w2, $x0, $x1
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
- ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
- ; CHECK: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY2]](s32)
- ; CHECK: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: $x0 = COPY [[COPY]](p0)
- ; CHECK: $x1 = COPY [[COPY1]](p0)
- ; CHECK: $x2 = COPY [[ZEXT]](s64)
- ; CHECK: BL &memmove, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
- ; CHECK: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: RET_ReallyLR
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
+ ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY2]](s32)
+ ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: $x1 = COPY [[COPY1]](p0)
+ ; CHECK-NEXT: $x2 = COPY [[ZEXT]](s64)
+ ; CHECK-NEXT: BL &memmove, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
+ ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: RET_ReallyLR
%0:_(p0) = COPY $x0
%1:_(p0) = COPY $x1
%2:_(s32) = COPY $w2
@@ -91,17 +94,18 @@ body: |
; CHECK-LABEL: name: test_memset
; CHECK: liveins: $w1, $w2, $x0
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
- ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
- ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
- ; CHECK: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY2]](s32)
- ; CHECK: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: $x0 = COPY [[COPY]](p0)
- ; CHECK: $w1 = COPY [[COPY1]](s32)
- ; CHECK: $x2 = COPY [[ZEXT]](s64)
- ; CHECK: BL &memset, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $w1, implicit $x2
- ; CHECK: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: RET_ReallyLR
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
+ ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY2]](s32)
+ ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: $w1 = COPY [[COPY1]](s32)
+ ; CHECK-NEXT: $x2 = COPY [[ZEXT]](s64)
+ ; CHECK-NEXT: BL &memset, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $w1, implicit $x2
+ ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: RET_ReallyLR
%0:_(p0) = COPY $x0
%1:_(s32) = COPY $w1
%2:_(s32) = COPY $w2
@@ -120,18 +124,19 @@ body: |
; CHECK-LABEL: name: no_tail_call
; CHECK: liveins: $w2, $x0, $x1
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x1
- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY $x0
- ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
- ; CHECK: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY2]](s32)
- ; CHECK: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: $x0 = COPY [[COPY]](p0)
- ; CHECK: $x1 = COPY [[COPY1]](p0)
- ; CHECK: $x2 = COPY [[ZEXT]](s64)
- ; CHECK: BL &memcpy, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
- ; CHECK: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: $x0 = COPY [[ZEXT]](s64)
- ; CHECK: RET_ReallyLR implicit $x0
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x1
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x0
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
+ ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY2]](s32)
+ ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: $x1 = COPY [[COPY1]](p0)
+ ; CHECK-NEXT: $x2 = COPY [[ZEXT]](s64)
+ ; CHECK-NEXT: BL &memcpy, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
+ ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: $x0 = COPY [[ZEXT]](s64)
+ ; CHECK-NEXT: RET_ReallyLR implicit $x0
%0:_(p0) = COPY $x1
%1:_(p0) = COPY $x0
%2:_(s32) = COPY $w2
@@ -149,17 +154,18 @@ body: |
liveins: $w2, $x0, $x1
; CHECK-LABEL: name: dont_tc_twice
; CHECK: liveins: $w2, $x0, $x1
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
- ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
- ; CHECK: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY2]](s32)
- ; CHECK: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: $x0 = COPY [[COPY]](p0)
- ; CHECK: $x1 = COPY [[COPY1]](p0)
- ; CHECK: $x2 = COPY [[ZEXT]](s64)
- ; CHECK: BL &memcpy, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
- ; CHECK: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: TCRETURNdi &memset, 0, csr_aarch64_aapcs, implicit $sp
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
+ ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY2]](s32)
+ ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: $x1 = COPY [[COPY1]](p0)
+ ; CHECK-NEXT: $x2 = COPY [[ZEXT]](s64)
+ ; CHECK-NEXT: BL &memcpy, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
+ ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: TCRETURNdi &memset, 0, csr_aarch64_aapcs, implicit $sp
%0:_(p0) = COPY $x0
%1:_(p0) = COPY $x1
%2:_(s32) = COPY $w2
@@ -190,13 +196,14 @@ body: |
; CHECK-LABEL: name: tail_with_copy_ret
; CHECK: liveins: $x0, $x1, $x2
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
- ; CHECK: [[COPY2:%[0-9]+]]:_(s64) = COPY $x2
- ; CHECK: $x0 = COPY [[COPY]](p0)
- ; CHECK: $x1 = COPY [[COPY1]](p0)
- ; CHECK: $x2 = COPY [[COPY2]](s64)
- ; CHECK: TCRETURNdi &memcpy, 0, csr_aarch64_aapcs, implicit $sp, implicit $x0, implicit $x1, implicit $x2
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x2
+ ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: $x1 = COPY [[COPY1]](p0)
+ ; CHECK-NEXT: $x2 = COPY [[COPY2]](s64)
+ ; CHECK-NEXT: TCRETURNdi &memcpy, 0, csr_aarch64_aapcs, implicit $sp, implicit $x0, implicit $x1, implicit $x2
%0:_(p0) = COPY $x0
%1:_(p0) = COPY $x1
%2:_(s64) = COPY $x2
@@ -226,17 +233,18 @@ body: |
; CHECK-LABEL: name: dont_tc_mismatched_copies
; CHECK: liveins: $x0, $x1, $x2
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
- ; CHECK: [[COPY2:%[0-9]+]]:_(s64) = COPY $x2
- ; CHECK: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: $x0 = COPY [[COPY]](p0)
- ; CHECK: $x1 = COPY [[COPY1]](p0)
- ; CHECK: $x2 = COPY [[COPY2]](s64)
- ; CHECK: BL &memcpy, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
- ; CHECK: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: $x1 = COPY [[COPY]](p0)
- ; CHECK: RET_ReallyLR implicit $x0
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x2
+ ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: $x1 = COPY [[COPY1]](p0)
+ ; CHECK-NEXT: $x2 = COPY [[COPY2]](s64)
+ ; CHECK-NEXT: BL &memcpy, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
+ ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: $x1 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: RET_ReallyLR implicit $x0
%0:_(p0) = COPY $x0
%1:_(p0) = COPY $x1
%2:_(s64) = COPY $x2
@@ -266,18 +274,19 @@ body: |
; CHECK-LABEL: name: dont_tc_extra_copy
; CHECK: liveins: $x0, $x1, $x2
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
- ; CHECK: [[COPY2:%[0-9]+]]:_(s64) = COPY $x2
- ; CHECK: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: $x0 = COPY [[COPY]](p0)
- ; CHECK: $x1 = COPY [[COPY1]](p0)
- ; CHECK: $x2 = COPY [[COPY2]](s64)
- ; CHECK: BL &memcpy, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
- ; CHECK: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: $x0 = COPY [[COPY]](p0)
- ; CHECK: $x0 = COPY [[COPY]](p0)
- ; CHECK: RET_ReallyLR implicit $x0
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x2
+ ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: $x1 = COPY [[COPY1]](p0)
+ ; CHECK-NEXT: $x2 = COPY [[COPY2]](s64)
+ ; CHECK-NEXT: BL &memcpy, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
+ ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: RET_ReallyLR implicit $x0
%0:_(p0) = COPY $x0
%1:_(p0) = COPY $x1
%2:_(s64) = COPY $x2
@@ -308,17 +317,18 @@ body: |
; CHECK-LABEL: name: dont_tc_mismatched_ret
; CHECK: liveins: $x0, $x1, $x2
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x1
- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY $x0
- ; CHECK: [[COPY2:%[0-9]+]]:_(s64) = COPY $x2
- ; CHECK: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: $x0 = COPY [[COPY]](p0)
- ; CHECK: $x1 = COPY [[COPY1]](p0)
- ; CHECK: $x2 = COPY [[COPY2]](s64)
- ; CHECK: BL &memcpy, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
- ; CHECK: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: $x1 = COPY [[COPY]](p0)
- ; CHECK: RET_ReallyLR implicit $x0
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x1
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x0
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x2
+ ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: $x1 = COPY [[COPY1]](p0)
+ ; CHECK-NEXT: $x2 = COPY [[COPY2]](s64)
+ ; CHECK-NEXT: BL &memcpy, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
+ ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: $x1 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: RET_ReallyLR implicit $x0
%0:_(p0) = COPY $x1
%1:_(p0) = COPY $x0
%2:_(s64) = COPY $x2
@@ -348,17 +358,18 @@ body: |
; CHECK-LABEL: name: dont_tc_ret_void_copy
; CHECK: liveins: $x0, $x1, $x2
- ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
- ; CHECK: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
- ; CHECK: [[COPY2:%[0-9]+]]:_(s64) = COPY $x2
- ; CHECK: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: $x0 = COPY [[COPY]](p0)
- ; CHECK: $x1 = COPY [[COPY1]](p0)
- ; CHECK: $x2 = COPY [[COPY2]](s64)
- ; CHECK: BL &memcpy, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
- ; CHECK: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
- ; CHECK: $x0 = COPY [[COPY]](p0)
- ; CHECK: RET_ReallyLR
+ ; CHECK-NEXT: {{ $}}
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1
+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x2
+ ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: $x1 = COPY [[COPY1]](p0)
+ ; CHECK-NEXT: $x2 = COPY [[COPY2]](s64)
+ ; CHECK-NEXT: BL &memcpy, csr_aarch64_aapcs_thisreturn, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2
+ ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
+ ; CHECK-NEXT: $x0 = COPY [[COPY]](p0)
+ ; CHECK-NEXT: RET_ReallyLR
%0:_(p0) = COPY $x0
%1:_(p0) = COPY $x1
%2:_(s64) = COPY $x2
More information about the llvm-commits
mailing list