[llvm] r316137 - Canonicalize a large number of mir tests using update_mir_test_checks
Justin Bogner via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 18 16:18:12 PDT 2017
Author: bogner
Date: Wed Oct 18 16:18:12 2017
New Revision: 316137
URL: http://llvm.org/viewvc/llvm-project?rev=316137&view=rev
Log:
Canonicalize a large number of mir tests using update_mir_test_checks
This converts a large and somewhat arbitrary set of tests to use
update_mir_test_checks. I ran the script on all of the tests I expect
to need to modify for an upcoming mir syntax change and kept the ones
that obviously didn't change the tests in ways that might make it
harder to understand.
Modified:
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-add.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-and.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-combines.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-extracts.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-fneg.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-fptoi.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-gep.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-ignore-non-generic.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-itofp.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-mul.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-nonpowerof2eltsvec.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-undef.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/no-regclass.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-constant.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-dbg-value.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-pr32733.mir
llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-add.mir
llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir
llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-bitcast.mir
llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-constant.mir
llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir
llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-icmp.mir
llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-or.mir
llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-select.mir
llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir
llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-instruction-select-cmp.mir
llvm/trunk/test/CodeGen/MIR/AArch64/atomic-memoperands.mir
llvm/trunk/test/CodeGen/MIR/AArch64/target-memoperands.mir
llvm/trunk/test/CodeGen/MIR/AMDGPU/intrinsics.mir
llvm/trunk/test/CodeGen/MIR/AMDGPU/target-flags.mir
llvm/trunk/test/CodeGen/MIR/X86/stack-object-operands.mir
llvm/trunk/test/CodeGen/MIR/X86/subregister-index-operands.mir
llvm/trunk/test/CodeGen/MIR/X86/subregister-operands.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-add-v128.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-and-scalar.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-cmp.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-ext-x86-64.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fadd-scalar.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fdiv-scalar.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fmul-scalar.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fpext-scalar.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fsub-scalar.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-gep.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-insert-vec512.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-or-scalar.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-phi.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub-v128.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub-v256.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub-v512.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub.mir
llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-xor-scalar.mir
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-add.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-add.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-add.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-add.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -32,18 +33,18 @@ registers:
body: |
bb.0.entry:
liveins: %x0, %x1, %x2, %x3
- ; CHECK-LABEL: name: test_scalar_add_big
- ; CHECK-NOT: G_MERGE_VALUES
- ; CHECK-NOT: G_UNMERGE_VALUES
- ; CHECK-DAG: [[CARRY0_32:%.*]](s32) = G_CONSTANT i32 0
- ; CHECK-DAG: [[CARRY0:%[0-9]+]](s1) = G_TRUNC [[CARRY0_32]]
- ; CHECK: [[RES_LO:%.*]](s64), [[CARRY:%.*]](s1) = G_UADDE %0, %2, [[CARRY0]]
- ; CHECK: [[RES_HI:%.*]](s64), {{%.*}}(s1) = G_UADDE %1, %3, [[CARRY]]
- ; CHECK-NOT: G_MERGE_VALUES
- ; CHECK-NOT: G_UNMERGE_VALUES
- ; CHECK: %x0 = COPY [[RES_LO]]
- ; CHECK: %x1 = COPY [[RES_HI]]
+ ; CHECK-LABEL: name: test_scalar_add_big
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[COPY1:%[0-9]+]](s64) = COPY %x1
+ ; CHECK: [[COPY2:%[0-9]+]](s64) = COPY %x2
+ ; CHECK: [[COPY3:%[0-9]+]](s64) = COPY %x3
+ ; CHECK: [[C:%[0-9]+]](s32) = G_CONSTANT i32 0
+ ; CHECK: [[TRUNC:%[0-9]+]](s1) = G_TRUNC [[C]](s32)
+ ; CHECK: [[UADDE:%[0-9]+]](s64), [[UADDE1:%[0-9]+]](s1) = G_UADDE [[COPY]], [[COPY2]], [[TRUNC]]
+ ; CHECK: [[UADDE2:%[0-9]+]](s64), [[UADDE3:%[0-9]+]](s1) = G_UADDE [[COPY1]], [[COPY3]], [[UADDE1]]
+ ; CHECK: %x0 = COPY [[UADDE]](s64)
+ ; CHECK: %x1 = COPY [[UADDE2]](s64)
%0(s64) = COPY %x0
%1(s64) = COPY %x1
%2(s64) = COPY %x2
@@ -68,14 +69,16 @@ registers:
body: |
bb.0.entry:
liveins: %x0, %x1, %x2, %x3
- ; CHECK-LABEL: name: test_scalar_add_small
- ; CHECK: [[A:%.*]](s64) = COPY %x0
- ; CHECK: [[B:%.*]](s64) = COPY %x1
- ; CHECK: [[OP0:%.*]](s32) = G_TRUNC [[A]]
- ; CHECK: [[OP1:%.*]](s32) = G_TRUNC [[B]]
- ; CHECK: [[RES32:%.*]](s32) = G_ADD [[OP0]], [[OP1]]
- ; CHECK: [[RES:%.*]](s8) = G_TRUNC [[RES32]](s32)
+ ; CHECK-LABEL: name: test_scalar_add_small
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[COPY1:%[0-9]+]](s64) = COPY %x1
+ ; CHECK: [[TRUNC:%[0-9]+]](s32) = G_TRUNC [[COPY]](s64)
+ ; CHECK: [[TRUNC1:%[0-9]+]](s32) = G_TRUNC [[COPY1]](s64)
+ ; CHECK: [[ADD:%[0-9]+]](s32) = G_ADD [[TRUNC]], [[TRUNC1]]
+ ; CHECK: [[TRUNC2:%[0-9]+]](s8) = G_TRUNC [[ADD]](s32)
+ ; CHECK: [[ANYEXT:%[0-9]+]](s64) = G_ANYEXT [[TRUNC2]](s8)
+ ; CHECK: %x0 = COPY [[ANYEXT]](s64)
%0(s64) = COPY %x0
%1(s64) = COPY %x1
%2(s8) = G_TRUNC %0
@@ -100,16 +103,16 @@ registers:
body: |
bb.0.entry:
liveins: %q0, %q1, %q2, %q3
- ; CHECK-LABEL: name: test_vector_add
- ; CHECK-NOT: G_EXTRACT
- ; CHECK-NOT: G_SEQUENCE
- ; CHECK: [[RES_LO:%.*]](<2 x s64>) = G_ADD %0, %2
- ; CHECK: [[RES_HI:%.*]](<2 x s64>) = G_ADD %1, %3
- ; CHECK-NOT: G_EXTRACT
- ; CHECK-NOT: G_SEQUENCE
- ; CHECK: %q0 = COPY [[RES_LO]]
- ; CHECK: %q1 = COPY [[RES_HI]]
+ ; CHECK-LABEL: name: test_vector_add
+ ; CHECK: [[COPY:%[0-9]+]](<2 x s64>) = COPY %q0
+ ; CHECK: [[COPY1:%[0-9]+]](<2 x s64>) = COPY %q1
+ ; CHECK: [[COPY2:%[0-9]+]](<2 x s64>) = COPY %q2
+ ; CHECK: [[COPY3:%[0-9]+]](<2 x s64>) = COPY %q3
+ ; CHECK: [[ADD:%[0-9]+]](<2 x s64>) = G_ADD [[COPY]], [[COPY2]]
+ ; CHECK: [[ADD1:%[0-9]+]](<2 x s64>) = G_ADD [[COPY1]], [[COPY3]]
+ ; CHECK: %q0 = COPY [[ADD]](<2 x s64>)
+ ; CHECK: %q1 = COPY [[ADD1]](<2 x s64>)
%0(<2 x s64>) = COPY %q0
%1(<2 x s64>) = COPY %q1
%2(<2 x s64>) = COPY %q2
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-and.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-and.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-and.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-and.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -21,14 +22,17 @@ registers:
body: |
bb.0.entry:
liveins: %x0, %x1, %x2, %x3
- ; CHECK-LABEL: name: test_scalar_and_small
- ; CHECK: [[A:%.*]](s64) = COPY %x0
- ; CHECK: [[B:%.*]](s64) = COPY %x1
- ; CHECK: [[OP0:%.*]](s32) = G_TRUNC [[A]]
- ; CHECK: [[OP1:%.*]](s32) = G_TRUNC [[B]]
- ; CHECK: [[RES32:%.*]](s32) = G_AND [[OP0]], [[OP1]]
- ; CHECK: [[RES:%.*]](s8) = G_TRUNC [[RES32]](s32)
+ ; CHECK-LABEL: name: test_scalar_and_small
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[COPY1:%[0-9]+]](s64) = COPY %x1
+ ; CHECK: [[TRUNC:%[0-9]+]](s8) = G_TRUNC [[COPY]](s64)
+ ; CHECK: [[TRUNC1:%[0-9]+]](s32) = G_TRUNC [[COPY]](s64)
+ ; CHECK: [[TRUNC2:%[0-9]+]](s32) = G_TRUNC [[COPY1]](s64)
+ ; CHECK: [[AND:%[0-9]+]](s32) = G_AND [[TRUNC1]], [[TRUNC2]]
+ ; CHECK: [[TRUNC3:%[0-9]+]](s8) = G_TRUNC [[AND]](s32)
+ ; CHECK: [[ANYEXT:%[0-9]+]](s64) = G_ANYEXT [[TRUNC]](s8)
+ ; CHECK: %x0 = COPY [[ANYEXT]](s64)
%0(s64) = COPY %x0
%1(s64) = COPY %x1
%2(s8) = G_TRUNC %0
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-combines.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-combines.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-combines.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-combines.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -16,13 +17,15 @@ body: |
bb.0:
liveins: %w0
+ ; Here the types don't match.
+ ; CHECK-LABEL: name: test_combines_2
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[ADD:%[0-9]+]](s32) = G_ADD [[COPY]], [[COPY]]
+ ; CHECK: [[MV:%[0-9]+]](s64) = G_MERGE_VALUES [[COPY]](s32), [[ADD]](s32)
+ ; CHECK: [[EXTRACT:%[0-9]+]](s1) = G_EXTRACT [[MV]](s64), 0
+ ; CHECK: [[EXTRACT1:%[0-9]+]](s64) = G_EXTRACT [[MV]](s64), 0
%0:_(s32) = COPY %w0
- ; Similarly, here the types don't match.
- ; CHECK-LABEL: name: test_combines_2
- ; CHECK: %2(s64) = G_MERGE_VALUES %0(s32), %1(s32)
- ; CHECK: %3(s1) = G_EXTRACT %2(s64), 0
- ; CHECK: %4(s64) = G_EXTRACT %2(s64), 0
%1:_(s32) = G_ADD %0, %0
%2:_(s64) = G_MERGE_VALUES %0, %1
%3:_(s1) = G_EXTRACT %2, 0
@@ -35,13 +38,12 @@ body: |
bb.0:
liveins: %w0
+ ; CHECK-LABEL: name: test_combines_3
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[ADD:%[0-9]+]](s32) = G_ADD [[COPY]], [[COPY]]
+ ; CHECK: [[ADD1:%[0-9]+]](s32) = G_ADD [[COPY]], [[ADD]]
%0:_(s32) = COPY %w0
- ; CHECK-LABEL: name: test_combines_3
- ; CHECK: %1(s32) = G_ADD %0, %0
- ; CHECK-NOT: G_SEQUENCE
- ; CHECK-NOT: G_EXTRACT
- ; CHECK: %5(s32) = G_ADD %0, %1
%1:_(s32) = G_ADD %0, %0
%2:_(s64) = G_MERGE_VALUES %0, %1
%3:_(s32), %4:_(s32) = G_UNMERGE_VALUES %2
@@ -54,11 +56,12 @@ body: |
bb.0:
liveins: %x0
+ ; CHECK-LABEL: name: test_combines_4
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[COPY1:%[0-9]+]](s64) = COPY [[COPY]](s64)
+ ; CHECK: [[ADD:%[0-9]+]](s64) = G_ADD [[COPY1]], [[COPY1]]
%0:_(s64) = COPY %x0
- ; CHECK-LABEL: name: test_combines_4
- ; CHECK: %2(s64) = COPY %0(s64)
- ; CHECK: %3(s64) = G_ADD %2, %2
%1:_(s128) = G_MERGE_VALUES %0, %0
%2:_(s64) = G_EXTRACT %1, 0
%3:_(s64) = G_ADD %2, %2
@@ -70,12 +73,12 @@ body: |
bb.0:
liveins: %w0
+ ; CHECK-LABEL: name: test_combines_5
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[ADD:%[0-9]+]](s32) = G_ADD [[COPY]], [[COPY]]
+ ; CHECK: [[ADD1:%[0-9]+]](s32) = G_ADD [[COPY]], [[ADD]]
%0:_(s32) = COPY %w0
- ; CHECK-LABEL: name: test_combines_5
- ; CHECK-NOT: G_MERGE_VALUES
- ; CHECK-NOT: G_EXTRACT
- ; CHECK: %5(s32) = G_ADD %0, %1
%1:_(s32) = G_ADD %0, %0
%2:_(s64) = G_MERGE_VALUES %0, %1
%3:_(s32), %4:_(s32) = G_UNMERGE_VALUES %2
@@ -88,15 +91,13 @@ body: |
bb.0:
liveins: %w0
+ ; Check that we replace all the uses of a G_EXTRACT.
; CHECK-LABEL: name: test_combines_6
- ; CHECK: %0(s32) = COPY %w0
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[MUL:%[0-9]+]](s32) = G_MUL [[COPY]], [[COPY]]
+ ; CHECK: [[ADD:%[0-9]+]](s32) = G_ADD [[COPY]], [[MUL]]
%0:_(s32) = COPY %w0
- ; Check that we replace all the uses of a G_EXTRACT.
- ; CHECK-NOT: G_MERGE_VALUES
- ; CHECK-NOT: G_EXTRACT
- ; CHECK: %3(s32) = G_MUL %0, %0
- ; CHECK: %4(s32) = G_ADD %0, %3
%1:_(s32) = G_MERGE_VALUES %0
%2:_(s32) = G_UNMERGE_VALUES %1
%3:_(s32) = G_MUL %2, %2
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -26,17 +27,17 @@ registers:
- { id: 5, class: _ }
body: |
bb.0.entry:
- ; CHECK-LABEL: name: test_constant
- ; CHECK: [[TMP:%[0-9]+]](s32) = G_CONSTANT i32 0
- ; CHECK: %0(s1) = G_TRUNC [[TMP]]
- ; CHECK: [[TMP:%[0-9]+]](s32) = G_CONSTANT i32 42
- ; CHECK: %1(s8) = G_TRUNC [[TMP]]
- ; CHECK: [[TMP:%[0-9]+]](s32) = G_CONSTANT i32 -1
- ; CHECK: %2(s16) = G_TRUNC [[TMP]]
- ; CHECK: %3(s32) = G_CONSTANT i32 -1
- ; CHECK: %4(s64) = G_CONSTANT i64 1
- ; CHECK: %5(s64) = G_CONSTANT i64 0
+ ; CHECK-LABEL: name: test_constant
+ ; CHECK: [[C:%[0-9]+]](s32) = G_CONSTANT i32 0
+ ; CHECK: [[TRUNC:%[0-9]+]](s1) = G_TRUNC [[C]](s32)
+ ; CHECK: [[C1:%[0-9]+]](s32) = G_CONSTANT i32 42
+ ; CHECK: [[TRUNC1:%[0-9]+]](s8) = G_TRUNC [[C1]](s32)
+ ; CHECK: [[C2:%[0-9]+]](s32) = G_CONSTANT i32 -1
+ ; CHECK: [[TRUNC2:%[0-9]+]](s16) = G_TRUNC [[C2]](s32)
+ ; CHECK: [[C3:%[0-9]+]](s32) = G_CONSTANT i32 -1
+ ; CHECK: [[C4:%[0-9]+]](s64) = G_CONSTANT i64 1
+ ; CHECK: [[C5:%[0-9]+]](s64) = G_CONSTANT i64 0
%0(s1) = G_CONSTANT i1 0
%1(s8) = G_CONSTANT i8 42
%2(s16) = G_CONSTANT i16 65535
@@ -53,12 +54,12 @@ registers:
- { id: 2, class: _ }
body: |
bb.0.entry:
- ; CHECK-LABEL: name: test_fconstant
- ; CHECK: %0(s32) = G_FCONSTANT float 1.000000e+00
- ; CHECK: %1(s64) = G_FCONSTANT double 2.000000e+00
- ; CHECK: [[TMP:%[0-9]+]](s32) = G_FCONSTANT half 0xH0000
- ; CHECK: %2(s16) = G_FPTRUNC [[TMP]]
+ ; CHECK-LABEL: name: test_fconstant
+ ; CHECK: [[C:%[0-9]+]](s32) = G_FCONSTANT float 1.000000e+00
+ ; CHECK: [[C1:%[0-9]+]](s64) = G_FCONSTANT double 2.000000e+00
+ ; CHECK: [[C2:%[0-9]+]](s32) = G_FCONSTANT half 0xH0000
+ ; CHECK: [[FPTRUNC:%[0-9]+]](s16) = G_FPTRUNC [[C2]](s32)
%0(s32) = G_FCONSTANT float 1.0
%1(s64) = G_FCONSTANT double 2.0
%2(s16) = G_FCONSTANT half 0.0
@@ -70,8 +71,8 @@ registers:
- { id: 0, class: _ }
body: |
bb.0:
- ; CHECK-LABEL: name: test_global
- ; CHECK: %0(p0) = G_GLOBAL_VALUE @var
+ ; CHECK-LABEL: name: test_global
+ ; CHECK: [[GV:%[0-9]+]](p0) = G_GLOBAL_VALUE @var
%0(p0) = G_GLOBAL_VALUE @var
...
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-extracts.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-extracts.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-extracts.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-extracts.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=aarch64-linux-gnu -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
---
@@ -10,10 +11,16 @@ body: |
; value stored is forwarded directly from first load.
; CHECK-LABEL: name: test_extracts_1
- ; CHECK: [[LO:%[0-9]+]](s64) = G_LOAD
- ; CHECK: {{%[0-9]+}}(s64) = G_LOAD
- ; CHECK: [[VAL:%[0-9]+]](s64) = COPY [[LO]]
- ; CHECK: G_STORE [[VAL]]
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY %w1
+ ; CHECK: [[COPY2:%[0-9]+]](p0) = COPY %x2
+ ; CHECK: [[LOAD:%[0-9]+]](s64) = G_LOAD [[COPY2]](p0) :: (load 16)
+ ; CHECK: [[C:%[0-9]+]](s64) = G_CONSTANT i64 8
+ ; CHECK: [[GEP:%[0-9]+]](p0) = G_GEP [[COPY2]], [[C]](s64)
+ ; CHECK: [[LOAD1:%[0-9]+]](s64) = G_LOAD [[GEP]](p0) :: (load 16)
+ ; CHECK: [[COPY3:%[0-9]+]](s64) = COPY [[LOAD]](s64)
+ ; CHECK: G_STORE [[COPY3]](s64), [[COPY2]](p0) :: (store 8)
+ ; CHECK: RET_ReallyLR
%0:_(s64) = COPY %x0
%1:_(s32) = COPY %w1
%2:_(p0) = COPY %x2
@@ -31,13 +38,19 @@ body: |
; Low extraction wipes takes whole low register. High extraction is real.
; CHECK-LABEL: name: test_extracts_2
- ; CHECK: [[LO_TMP:%[0-9]+]](s64) = G_LOAD
- ; CHECK: [[HI:%[0-9]+]](s64) = G_LOAD
- ; CHECK: [[LO:%[0-9]+]](s64) = COPY [[LO_TMP]]
- ; CHECK: [[NEWHI_TMP:%[0-9]+]](s32) = G_EXTRACT [[HI]](s64), 0
- ; CHECK: [[NEWHI:%[0-9]+]](s32) = COPY [[NEWHI_TMP]]
- ; CHECK: G_STORE [[LO]]
- ; CHECK: G_STORE [[NEWHI]]
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY %w1
+ ; CHECK: [[COPY2:%[0-9]+]](p0) = COPY %x2
+ ; CHECK: [[LOAD:%[0-9]+]](s64) = G_LOAD [[COPY2]](p0) :: (load 16)
+ ; CHECK: [[C:%[0-9]+]](s64) = G_CONSTANT i64 8
+ ; CHECK: [[GEP:%[0-9]+]](p0) = G_GEP [[COPY2]], [[C]](s64)
+ ; CHECK: [[LOAD1:%[0-9]+]](s64) = G_LOAD [[GEP]](p0) :: (load 16)
+ ; CHECK: [[COPY3:%[0-9]+]](s64) = COPY [[LOAD]](s64)
+ ; CHECK: [[EXTRACT:%[0-9]+]](s32) = G_EXTRACT [[LOAD1]](s64), 0
+ ; CHECK: [[COPY4:%[0-9]+]](s32) = COPY [[EXTRACT]](s32)
+ ; CHECK: G_STORE [[COPY3]](s64), [[COPY2]](p0) :: (store 8)
+ ; CHECK: G_STORE [[COPY4]](s32), [[COPY2]](p0) :: (store 4)
+ ; CHECK: RET_ReallyLR
%0:_(s64) = COPY %x0
%1:_(s32) = COPY %w1
%2:_(p0) = COPY %x2
@@ -57,9 +70,12 @@ body: |
; CHECK-LABEL: name: test_extracts_3
- ; CHECK: [[LO:%[0-9]+]](s32) = G_EXTRACT %0(s64), 32
- ; CHECK: [[HI:%[0-9]+]](s32) = G_EXTRACT %1(s64), 0
- ; CHECK: %3(s64) = G_MERGE_VALUES [[LO]](s32), [[HI]](s32)
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[COPY1:%[0-9]+]](s64) = COPY %x1
+ ; CHECK: [[EXTRACT:%[0-9]+]](s32) = G_EXTRACT [[COPY]](s64), 32
+ ; CHECK: [[EXTRACT1:%[0-9]+]](s32) = G_EXTRACT [[COPY1]](s64), 0
+ ; CHECK: [[MV:%[0-9]+]](s64) = G_MERGE_VALUES [[EXTRACT]](s32), [[EXTRACT1]](s32)
+ ; CHECK: RET_ReallyLR
%0:_(s64) = COPY %x0
%1:_(s64) = COPY %x1
%2:_(s128) = G_MERGE_VALUES %0, %1
@@ -75,8 +91,11 @@ body: |
; CHECK-LABEL: name: test_extracts_4
- ; CHECK: [[LO_TMP:%[0-9]+]](s32) = G_EXTRACT %0(s64), 32
- ; CHECK: %3(s32) = COPY [[LO_TMP]]
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[COPY1:%[0-9]+]](s64) = COPY %x1
+ ; CHECK: [[EXTRACT:%[0-9]+]](s32) = G_EXTRACT [[COPY]](s64), 32
+ ; CHECK: [[COPY2:%[0-9]+]](s32) = COPY [[EXTRACT]](s32)
+ ; CHECK: RET_ReallyLR
%0:_(s64) = COPY %x0
%1:_(s64) = COPY %x1
%2:_(s128) = G_MERGE_VALUES %0, %1
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-fneg.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-fneg.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-fneg.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-fneg.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -21,10 +22,10 @@ body: |
bb.1:
liveins: %s0
; CHECK-LABEL: name: test_fneg_f32
- ; CHECK: [[VAR:%[0-9]+]](s32) = COPY %s0
- ; CHECK: [[ZERO:%[0-9]+]](s32) = G_FCONSTANT float -0.000000e+00
- ; CHECK: [[RES:%[0-9]+]](s32) = G_FSUB [[ZERO]], [[VAR]]
- ; CHECK: %s0 = COPY [[RES]](s32)
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %s0
+ ; CHECK: [[C:%[0-9]+]](s32) = G_FCONSTANT float -0.000000e+00
+ ; CHECK: [[FSUB:%[0-9]+]](s32) = G_FSUB [[C]], [[COPY]]
+ ; CHECK: %s0 = COPY [[FSUB]](s32)
%0(s32) = COPY %s0
%1(s32) = G_FNEG %0
%s0 = COPY %1(s32)
@@ -38,10 +39,10 @@ body: |
bb.1:
liveins: %d0
; CHECK-LABEL: name: test_fneg_f64
- ; CHECK: [[VAR:%[0-9]+]](s64) = COPY %d0
- ; CHECK: [[ZERO:%[0-9]+]](s64) = G_FCONSTANT double -0.000000e+00
- ; CHECK: [[RES:%[0-9]+]](s64) = G_FSUB [[ZERO]], [[VAR]]
- ; CHECK: %d0 = COPY [[RES]](s64)
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %d0
+ ; CHECK: [[C:%[0-9]+]](s64) = G_FCONSTANT double -0.000000e+00
+ ; CHECK: [[FSUB:%[0-9]+]](s64) = G_FSUB [[C]], [[COPY]]
+ ; CHECK: %d0 = COPY [[FSUB]](s64)
%0(s64) = COPY %d0
%1(s64) = G_FNEG %0
%d0 = COPY %1(s64)
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-fptoi.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-fptoi.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-fptoi.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-fptoi.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -29,10 +30,10 @@ name: test_fptosi_s32_s32
body: |
bb.0:
liveins: %w0
- %0:_(s32) = COPY %w0
-
; CHECK-LABEL: name: test_fptosi_s32_s32
- ; CHECK: %1(s32) = G_FPTOSI %0
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[FPTOSI:%[0-9]+]](s32) = G_FPTOSI [[COPY]](s32)
+ %0:_(s32) = COPY %w0
%1:_(s32) = G_FPTOSI %0
...
@@ -41,10 +42,10 @@ name: test_fptoui_s32_s32
body: |
bb.0:
liveins: %w0
- %0:_(s32) = COPY %w0
-
; CHECK-LABEL: name: test_fptoui_s32_s32
- ; CHECK: %1(s32) = G_FPTOUI %0
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[FPTOUI:%[0-9]+]](s32) = G_FPTOUI [[COPY]](s32)
+ %0:_(s32) = COPY %w0
%1:_(s32) = G_FPTOUI %0
...
@@ -53,10 +54,10 @@ name: test_fptosi_s32_s64
body: |
bb.0:
liveins: %x0
- %0:_(s64) = COPY %x0
-
; CHECK-LABEL: name: test_fptosi_s32_s64
- ; CHECK: %1(s32) = G_FPTOSI %0
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[FPTOSI:%[0-9]+]](s32) = G_FPTOSI [[COPY]](s64)
+ %0:_(s64) = COPY %x0
%1:_(s32) = G_FPTOSI %0
...
@@ -65,10 +66,10 @@ name: test_fptoui_s32_s64
body: |
bb.0:
liveins: %x0
- %0:_(s64) = COPY %x0
-
; CHECK-LABEL: name: test_fptoui_s32_s64
- ; CHECK: %1(s32) = G_FPTOUI %0
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[FPTOUI:%[0-9]+]](s32) = G_FPTOUI [[COPY]](s64)
+ %0:_(s64) = COPY %x0
%1:_(s32) = G_FPTOUI %0
...
@@ -77,10 +78,10 @@ name: test_fptosi_s64_s32
body: |
bb.0:
liveins: %w0
- %0:_(s32) = COPY %w0
-
; CHECK-LABEL: name: test_fptosi_s64_s32
- ; CHECK: %1(s64) = G_FPTOSI %0
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[FPTOSI:%[0-9]+]](s64) = G_FPTOSI [[COPY]](s32)
+ %0:_(s32) = COPY %w0
%1:_(s64) = G_FPTOSI %0
...
@@ -89,10 +90,10 @@ name: test_fptoui_s64_s32
body: |
bb.0:
liveins: %w0
- %0:_(s32) = COPY %w0
-
; CHECK-LABEL: name: test_fptoui_s64_s32
- ; CHECK: %1(s64) = G_FPTOUI %0
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[FPTOUI:%[0-9]+]](s64) = G_FPTOUI [[COPY]](s32)
+ %0:_(s32) = COPY %w0
%1:_(s64) = G_FPTOUI %0
...
@@ -101,10 +102,10 @@ name: test_fptosi_s64_s64
body: |
bb.0:
liveins: %x0
- %0:_(s64) = COPY %x0
-
; CHECK-LABEL: name: test_fptosi_s64_s64
- ; CHECK: %1(s64) = G_FPTOSI %0
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[FPTOSI:%[0-9]+]](s64) = G_FPTOSI [[COPY]](s64)
+ %0:_(s64) = COPY %x0
%1:_(s64) = G_FPTOSI %0
...
@@ -113,10 +114,10 @@ name: test_fptoui_s64_s64
body: |
bb.0:
liveins: %x0
- %0:_(s64) = COPY %x0
-
; CHECK-LABEL: name: test_fptoui_s64_s64
- ; CHECK: %1(s64) = G_FPTOUI %0
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[FPTOUI:%[0-9]+]](s64) = G_FPTOUI [[COPY]](s64)
+ %0:_(s64) = COPY %x0
%1:_(s64) = G_FPTOUI %0
...
@@ -127,11 +128,11 @@ name: test_fptosi_s1_s32
body: |
bb.0:
liveins: %w0
- %0:_(s32) = COPY %w0
-
; CHECK-LABEL: name: test_fptosi_s1_s32
- ; CHECK: %2(s32) = G_FPTOSI %0
- ; CHECK: %1(s1) = G_TRUNC %2
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[FPTOSI:%[0-9]+]](s32) = G_FPTOSI [[COPY]](s32)
+ ; CHECK: [[TRUNC:%[0-9]+]](s1) = G_TRUNC [[FPTOSI]](s32)
+ %0:_(s32) = COPY %w0
%1:_(s1) = G_FPTOSI %0
...
@@ -140,11 +141,11 @@ name: test_fptoui_s1_s32
body: |
bb.0:
liveins: %w0
- %0:_(s32) = COPY %w0
-
; CHECK-LABEL: name: test_fptoui_s1_s32
- ; CHECK: %2(s32) = G_FPTOUI %0
- ; CHECK: %1(s1) = G_TRUNC %2
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[FPTOUI:%[0-9]+]](s32) = G_FPTOUI [[COPY]](s32)
+ ; CHECK: [[TRUNC:%[0-9]+]](s1) = G_TRUNC [[FPTOUI]](s32)
+ %0:_(s32) = COPY %w0
%1:_(s1) = G_FPTOUI %0
...
@@ -153,11 +154,11 @@ name: test_fptosi_s8_s64
body: |
bb.0:
liveins: %x0
- %0:_(s64) = COPY %x0
-
; CHECK-LABEL: name: test_fptosi_s8_s64
- ; CHECK: %2(s32) = G_FPTOSI %0
- ; CHECK: %1(s8) = G_TRUNC %2
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[FPTOSI:%[0-9]+]](s32) = G_FPTOSI [[COPY]](s64)
+ ; CHECK: [[TRUNC:%[0-9]+]](s8) = G_TRUNC [[FPTOSI]](s32)
+ %0:_(s64) = COPY %x0
%1:_(s8) = G_FPTOSI %0
...
@@ -166,11 +167,11 @@ name: test_fptoui_s8_s64
body: |
bb.0:
liveins: %x0
- %0:_(s64) = COPY %x0
-
; CHECK-LABEL: name: test_fptoui_s8_s64
- ; CHECK: %2(s32) = G_FPTOUI %0
- ; CHECK: %1(s8) = G_TRUNC %2
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[FPTOUI:%[0-9]+]](s32) = G_FPTOUI [[COPY]](s64)
+ ; CHECK: [[TRUNC:%[0-9]+]](s8) = G_TRUNC [[FPTOUI]](s32)
+ %0:_(s64) = COPY %x0
%1:_(s8) = G_FPTOUI %0
...
@@ -179,11 +180,11 @@ name: test_fptosi_s16_s32
body: |
bb.0:
liveins: %w0
- %0:_(s32) = COPY %w0
-
; CHECK-LABEL: name: test_fptosi_s16_s32
- ; CHECK: %2(s32) = G_FPTOSI %0
- ; CHECK: %1(s16) = G_TRUNC %2
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[FPTOSI:%[0-9]+]](s32) = G_FPTOSI [[COPY]](s32)
+ ; CHECK: [[TRUNC:%[0-9]+]](s16) = G_TRUNC [[FPTOSI]](s32)
+ %0:_(s32) = COPY %w0
%1:_(s16) = G_FPTOSI %0
...
@@ -192,10 +193,10 @@ name: test_fptoui_s16_s32
body: |
bb.0:
liveins: %w0
- %0:_(s32) = COPY %w0
-
; CHECK-LABEL: name: test_fptoui_s16_s32
- ; CHECK: %2(s32) = G_FPTOUI %0
- ; CHECK: %1(s16) = G_TRUNC %2
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[FPTOUI:%[0-9]+]](s32) = G_FPTOUI [[COPY]](s32)
+ ; CHECK: [[TRUNC:%[0-9]+]](s16) = G_TRUNC [[FPTOUI]](s32)
+ %0:_(s32) = COPY %w0
%1:_(s16) = G_FPTOUI %0
...
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-gep.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-gep.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-gep.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-gep.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -19,16 +20,16 @@ registers:
body: |
bb.0.entry:
liveins: %x0, %x1, %x2, %x3
- ; CHECK-LABEL: name: test_gep_small
- ; CHECK: [[A:%.*]](p0) = COPY %x0
- ; CHECK: [[B:%.*]](s64) = COPY %x1
- ; CHECK: [[C:%.*]](s64) = G_CONSTANT i64 56
- ; CHECK: [[SRC:%.*]](s64) = COPY [[B]](s64)
- ; CHECK: [[SHL:%.*]](s64) = G_SHL [[SRC]], [[C]]
- ; CHECK: [[SEXT:%.*]](s64) = G_ASHR [[SHL]], [[C]]
- ; CHECK: G_GEP [[A]], [[SEXT]]
-
+ ; CHECK-LABEL: name: test_gep_small
+ ; CHECK: [[COPY:%[0-9]+]](p0) = COPY %x0
+ ; CHECK: [[COPY1:%[0-9]+]](s64) = COPY %x1
+ ; CHECK: [[C:%[0-9]+]](s64) = G_CONSTANT i64 56
+ ; CHECK: [[COPY2:%[0-9]+]](s64) = COPY [[COPY1]](s64)
+ ; CHECK: [[SHL:%[0-9]+]](s64) = G_SHL [[COPY2]], [[C]]
+ ; CHECK: [[ASHR:%[0-9]+]](s64) = G_ASHR [[SHL]], [[C]]
+ ; CHECK: [[GEP:%[0-9]+]](p0) = G_GEP [[COPY]], [[ASHR]](s64)
+ ; CHECK: %x0 = COPY [[GEP]](p0)
%0(p0) = COPY %x0
%1(s64) = COPY %x1
%2(s8) = G_TRUNC %1
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-ignore-non-generic.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-ignore-non-generic.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-ignore-non-generic.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-ignore-non-generic.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -14,10 +15,10 @@ registers:
body: |
bb.0:
liveins: %x0
- ; CHECK-LABEL: name: test_copy
- ; CHECK: %0(s64) = COPY %x0
- ; CHECK-NEXT: %x0 = COPY %0
+ ; CHECK-LABEL: name: test_copy
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: %x0 = COPY [[COPY]](s64)
%0(s64) = COPY %x0
%x0 = COPY %0
...
@@ -26,8 +27,8 @@ body: |
name: test_targetspecific
body: |
bb.0:
+
; CHECK-LABEL: name: test_targetspecific
; CHECK: RET_ReallyLR
-
RET_ReallyLR
...
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-itofp.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-itofp.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-itofp.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-itofp.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -29,10 +30,10 @@ name: test_sitofp_s32_s32
body: |
bb.0:
liveins: %w0
- %0:_(s32) = COPY %w0
-
; CHECK-LABEL: name: test_sitofp_s32_s32
- ; CHECK: %1(s32) = G_SITOFP %0
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[SITOFP:%[0-9]+]](s32) = G_SITOFP [[COPY]](s32)
+ %0:_(s32) = COPY %w0
%1:_(s32) = G_SITOFP %0
...
@@ -41,10 +42,10 @@ name: test_uitofp_s32_s32
body: |
bb.0:
liveins: %w0
- %0:_(s32) = COPY %w0
-
; CHECK-LABEL: name: test_uitofp_s32_s32
- ; CHECK: %1(s32) = G_UITOFP %0
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[UITOFP:%[0-9]+]](s32) = G_UITOFP [[COPY]](s32)
+ %0:_(s32) = COPY %w0
%1:_(s32) = G_UITOFP %0
...
@@ -53,10 +54,10 @@ name: test_sitofp_s32_s64
body: |
bb.0:
liveins: %x0
- %0:_(s64) = COPY %x0
-
; CHECK-LABEL: name: test_sitofp_s32_s64
- ; CHECK: %1(s32) = G_SITOFP %0
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[SITOFP:%[0-9]+]](s32) = G_SITOFP [[COPY]](s64)
+ %0:_(s64) = COPY %x0
%1:_(s32) = G_SITOFP %0
...
@@ -65,10 +66,10 @@ name: test_uitofp_s32_s64
body: |
bb.0:
liveins: %x0
- %0:_(s64) = COPY %x0
-
; CHECK-LABEL: name: test_uitofp_s32_s64
- ; CHECK: %1(s32) = G_UITOFP %0
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[UITOFP:%[0-9]+]](s32) = G_UITOFP [[COPY]](s64)
+ %0:_(s64) = COPY %x0
%1:_(s32) = G_UITOFP %0
...
@@ -77,10 +78,10 @@ name: test_sitofp_s64_s32
body: |
bb.0:
liveins: %w0
- %0:_(s32) = COPY %w0
-
; CHECK-LABEL: name: test_sitofp_s64_s32
- ; CHECK: %1(s64) = G_SITOFP %0
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[SITOFP:%[0-9]+]](s64) = G_SITOFP [[COPY]](s32)
+ %0:_(s32) = COPY %w0
%1:_(s64) = G_SITOFP %0
...
@@ -89,10 +90,10 @@ name: test_uitofp_s64_s32
body: |
bb.0:
liveins: %w0
- %0:_(s32) = COPY %w0
-
; CHECK-LABEL: name: test_uitofp_s64_s32
- ; CHECK: %1(s64) = G_UITOFP %0
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[UITOFP:%[0-9]+]](s64) = G_UITOFP [[COPY]](s32)
+ %0:_(s32) = COPY %w0
%1:_(s64) = G_UITOFP %0
...
@@ -101,10 +102,10 @@ name: test_sitofp_s64_s64
body: |
bb.0:
liveins: %x0
- %0:_(s64) = COPY %x0
-
; CHECK-LABEL: name: test_sitofp_s64_s64
- ; CHECK: %1(s64) = G_SITOFP %0
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[SITOFP:%[0-9]+]](s64) = G_SITOFP [[COPY]](s64)
+ %0:_(s64) = COPY %x0
%1:_(s64) = G_SITOFP %0
...
@@ -113,10 +114,10 @@ name: test_uitofp_s64_s64
body: |
bb.0:
liveins: %x0
- %0:_(s64) = COPY %x0
-
; CHECK-LABEL: name: test_uitofp_s64_s64
- ; CHECK: %1(s64) = G_UITOFP %0
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; CHECK: [[UITOFP:%[0-9]+]](s64) = G_UITOFP [[COPY]](s64)
+ %0:_(s64) = COPY %x0
%1:_(s64) = G_UITOFP %0
...
@@ -126,15 +127,15 @@ name: test_sitofp_s32_s1
body: |
bb.0:
liveins: %w0
+ ; CHECK-LABEL: name: test_sitofp_s32_s1
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[C:%[0-9]+]](s32) = G_CONSTANT i32 31
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY [[COPY]](s32)
+ ; CHECK: [[SHL:%[0-9]+]](s32) = G_SHL [[COPY1]], [[C]]
+ ; CHECK: [[ASHR:%[0-9]+]](s32) = G_ASHR [[SHL]], [[C]]
+ ; CHECK: [[SITOFP:%[0-9]+]](s32) = G_SITOFP [[ASHR]](s32)
%0:_(s32) = COPY %w0
%1:_(s1) = G_TRUNC %0
-
- ; CHECK-LABEL: name: test_sitofp_s32_s1
- ; CHECK: [[C1:%.*]](s32) = G_CONSTANT i32 31
- ; CHECK: [[SRC:%.*]](s32) = COPY %0(s32)
- ; CHECK: [[SHL1:%.*]](s32) = G_SHL [[SRC]], [[C1]]
- ; CHECK: [[SEXT:%.*]](s32) = G_ASHR [[SHL1]], [[C1]]
- ; CHECK: %2(s32) = G_SITOFP [[SEXT]]
%2:_(s32) = G_SITOFP %1
...
@@ -143,14 +144,14 @@ name: test_uitofp_s32_s1
body: |
bb.0:
liveins: %w0
+ ; CHECK-LABEL: name: test_uitofp_s32_s1
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[C:%[0-9]+]](s32) = G_CONSTANT i32 1
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY [[COPY]](s32)
+ ; CHECK: [[AND:%[0-9]+]](s32) = G_AND [[COPY1]], [[C]]
+ ; CHECK: [[UITOFP:%[0-9]+]](s32) = G_UITOFP [[AND]](s32)
%0:_(s32) = COPY %w0
%1:_(s1) = G_TRUNC %0
-
- ; CHECK-LABEL: name: test_uitofp_s32_s1
- ; CHECK: [[C:%.*]](s32) = G_CONSTANT i32 1
- ; CHECK: [[SRC:%.*]](s32) = COPY %0(s32)
- ; CHECK: [[ZEXT:%.*]](s32) = G_AND [[SRC]], [[C]]
- ; CHECK: [[RES:%.*]](s32) = G_UITOFP [[ZEXT]]
%2:_(s32) = G_UITOFP %1
...
@@ -159,15 +160,15 @@ name: test_sitofp_s64_s8
body: |
bb.0:
liveins: %w0
+ ; CHECK-LABEL: name: test_sitofp_s64_s8
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[C:%[0-9]+]](s32) = G_CONSTANT i32 24
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY [[COPY]](s32)
+ ; CHECK: [[SHL:%[0-9]+]](s32) = G_SHL [[COPY1]], [[C]]
+ ; CHECK: [[ASHR:%[0-9]+]](s32) = G_ASHR [[SHL]], [[C]]
+ ; CHECK: [[SITOFP:%[0-9]+]](s64) = G_SITOFP [[ASHR]](s32)
%0:_(s32) = COPY %w0
%1:_(s8) = G_TRUNC %0
-
- ; CHECK-LABEL: name: test_sitofp_s64_s8
- ; CHECK: [[C1:%.*]](s32) = G_CONSTANT i32 24
- ; CHECK: [[SRC:%.*]](s32) = COPY %0(s32)
- ; CHECK: [[SHL1:%.*]](s32) = G_SHL [[SRC]], [[C1]]
- ; CHECK: [[SEXT:%.*]](s32) = G_ASHR [[SHL1]], [[C1]]
- ; CHECK: %2(s64) = G_SITOFP [[SEXT]]
%2:_(s64) = G_SITOFP %1
...
@@ -176,14 +177,14 @@ name: test_uitofp_s64_s8
body: |
bb.0:
liveins: %w0
+ ; CHECK-LABEL: name: test_uitofp_s64_s8
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[C:%[0-9]+]](s32) = G_CONSTANT i32 255
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY [[COPY]](s32)
+ ; CHECK: [[AND:%[0-9]+]](s32) = G_AND [[COPY1]], [[C]]
+ ; CHECK: [[UITOFP:%[0-9]+]](s64) = G_UITOFP [[AND]](s32)
%0:_(s32) = COPY %w0
%1:_(s8) = G_TRUNC %0
-
- ; CHECK-LABEL: name: test_uitofp_s64_s8
- ; CHECK: [[C:%.*]](s32) = G_CONSTANT i32 255
- ; CHECK: [[SRC:%.*]](s32) = COPY %0(s32)
- ; CHECK: [[ZEXT:%.*]](s32) = G_AND [[SRC]], [[C]]
- ; CHECK: %2(s64) = G_UITOFP [[ZEXT]]
%2:_(s64) = G_UITOFP %1
...
@@ -192,15 +193,15 @@ name: test_sitofp_s32_s16
body: |
bb.0:
liveins: %w0
+ ; CHECK-LABEL: name: test_sitofp_s32_s16
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[C:%[0-9]+]](s32) = G_CONSTANT i32 16
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY [[COPY]](s32)
+ ; CHECK: [[SHL:%[0-9]+]](s32) = G_SHL [[COPY1]], [[C]]
+ ; CHECK: [[ASHR:%[0-9]+]](s32) = G_ASHR [[SHL]], [[C]]
+ ; CHECK: [[SITOFP:%[0-9]+]](s32) = G_SITOFP [[ASHR]](s32)
%0:_(s32) = COPY %w0
%1:_(s16) = G_TRUNC %0
-
- ; CHECK-LABEL: name: test_sitofp_s32_s16
- ; CHECK: [[C1:%.*]](s32) = G_CONSTANT i32 16
- ; CHECK: [[SRC:%.*]](s32) = COPY %0(s32)
- ; CHECK: [[SHL1:%.*]](s32) = G_SHL [[SRC]], [[C1]]
- ; CHECK: [[SEXT:%.*]](s32) = G_ASHR [[SHL1]], [[C1]]
- ; CHECK: %2(s32) = G_SITOFP [[SEXT]]
%2:_(s32) = G_SITOFP %1
...
@@ -209,13 +210,13 @@ name: test_uitofp_s32_s16
body: |
bb.0:
liveins: %w0
+ ; CHECK-LABEL: name: test_uitofp_s32_s16
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[C:%[0-9]+]](s32) = G_CONSTANT i32 65535
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY [[COPY]](s32)
+ ; CHECK: [[AND:%[0-9]+]](s32) = G_AND [[COPY1]], [[C]]
+ ; CHECK: [[UITOFP:%[0-9]+]](s32) = G_UITOFP [[AND]](s32)
%0:_(s32) = COPY %w0
%1:_(s16) = G_TRUNC %0
-
- ; CHECK-LABEL: name: test_uitofp_s32_s16
- ; CHECK: [[C:%.*]](s32) = G_CONSTANT i32 65535
- ; CHECK: [[SRC:%.*]](s32) = COPY %0(s32)
- ; CHECK: [[ZEXT:%.*]](s32) = G_AND [[SRC]], [[C]]
- ; CHECK: [[RES:%.*]](s32) = G_UITOFP [[ZEXT]]
%2:_(s32) = G_UITOFP %1
...
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-mul.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-mul.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-mul.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-mul.mir Wed Oct 18 16:18:12 2017
@@ -54,12 +54,11 @@ body: |
; CHECK: [[COPY1:%[0-9]+]](s64) = COPY %x1
; CHECK: [[MUL:%[0-9]+]](s64) = G_MUL [[COPY]], [[COPY1]]
; CHECK: [[SMULH:%[0-9]+]](s64) = G_SMULH [[COPY]], [[COPY1]]
- ; CHECK: [[C2:%[0-9]+]](s64) = G_CONSTANT i64 0
- ; CHECK: [[ICMP:%[0-9]+]](s32) = G_ICMP intpred(ne), [[SMULH]](s64), [[C2]]
+ ; CHECK: [[C:%[0-9]+]](s64) = G_CONSTANT i64 0
+ ; CHECK: [[ICMP:%[0-9]+]](s32) = G_ICMP intpred(ne), [[SMULH]](s64), [[C]]
; CHECK: [[TRUNC:%[0-9]+]](s1) = G_TRUNC [[ICMP]](s32)
%0:_(s64) = COPY %x0
%1:_(s64) = COPY %x1
-
%2:_(s64), %3:_(s1) = G_SMULO %0, %1
...
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-nonpowerof2eltsvec.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-nonpowerof2eltsvec.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-nonpowerof2eltsvec.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-nonpowerof2eltsvec.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -18,10 +19,10 @@ body: |
bb.0:
liveins: %w0, %w1, %w2
; CHECK-LABEL: name: test_legalize_merge_v3s32
- ; CHECK: [[ARG1:%[0-9]+]](s32) = COPY %w0
- ; CHECK: [[ARG2:%[0-9]+]](s32) = COPY %w1
- ; CHECK: [[ARG3:%[0-9]+]](s32) = COPY %w2
- ; CHECK: (<3 x s32>) = G_MERGE_VALUES [[ARG1]](s32), [[ARG2]](s32), [[ARG3]](s32)
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %w0
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY %w1
+ ; CHECK: [[COPY2:%[0-9]+]](s32) = COPY %w2
+ ; CHECK: [[MV:%[0-9]+]](<3 x s32>) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32)
%0(s32) = COPY %w0
%1(s32) = COPY %w1
%2(s32) = COPY %w2
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-undef.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-undef.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-undef.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-undef.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=aarch64-linux-gnu -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
---
@@ -7,9 +8,9 @@ body: |
bb.0.entry:
liveins:
; CHECK-LABEL: name: test_implicit_def
- ; CHECK: [[LO:%[0-9]+]](s64) = G_IMPLICIT_DEF
- ; CHECK: [[HI:%[0-9]+]](s64) = G_IMPLICIT_DEF
- ; CHECK: %0(s128) = G_MERGE_VALUES [[LO]](s64), [[HI]](s64)
+ ; CHECK: [[DEF:%[0-9]+]](s64) = G_IMPLICIT_DEF
+ ; CHECK: [[DEF1:%[0-9]+]](s64) = G_IMPLICIT_DEF
+ ; CHECK: [[MV:%[0-9]+]](s128) = G_MERGE_VALUES [[DEF]](s64), [[DEF1]](s64)
%0:_(s128) = G_IMPLICIT_DEF
...
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/no-regclass.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/no-regclass.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/no-regclass.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/no-regclass.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -mtriple=aarch64-apple-ios -global-isel -start-before=legalizer -stop-after=instruction-select %s -o - | FileCheck %s
# We run the legalizer to combine the trivial EXTRACT_SEQ pair, leaving %1 and
@@ -10,19 +11,19 @@
define void @unused_reg() { ret void }
---
-# CHECK-LABEL: name: unused_reg
name: unused_reg
legalized: true
regBankSelected: true
tracksRegLiveness: true
-# CHECK: body:
-# CHECK: %0 = COPY %w0
-# CHECK: %w0 = COPY %0
body: |
bb.0:
liveins: %w0
+ ; CHECK-LABEL: name: unused_reg
+ ; CHECK: liveins: %w0
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %w0
+ ; CHECK: %w0 = COPY [[COPY]]
%0:gpr(s32) = COPY %w0
%1:gpr(s32) = G_MERGE_VALUES %0(s32)
%2:gpr(s32) = G_UNMERGE_VALUES %1(s32)
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-constant.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-constant.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-constant.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-constant.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs -global-isel %s -o - | FileCheck %s
--- |
@@ -13,101 +14,99 @@
...
---
-# CHECK-LABEL: name: const_s32
name: const_s32
legalized: true
regBankSelected: true
registers:
- { id: 0, class: gpr }
-# CHECK: body:
-# CHECK: %0 = MOVi32imm 42
body: |
bb.0:
+ ; CHECK-LABEL: name: const_s32
+ ; CHECK: [[MOVi32imm:%[0-9]+]] = MOVi32imm 42
+ ; CHECK: %w0 = COPY [[MOVi32imm]]
%0(s32) = G_CONSTANT i32 42
%w0 = COPY %0(s32)
...
---
-# CHECK-LABEL: name: const_s64
name: const_s64
legalized: true
regBankSelected: true
registers:
- { id: 0, class: gpr }
-# CHECK: body:
-# CHECK: %0 = MOVi64imm 1234567890123
body: |
bb.0:
+ ; CHECK-LABEL: name: const_s64
+ ; CHECK: [[MOVi64imm:%[0-9]+]] = MOVi64imm 1234567890123
+ ; CHECK: %x0 = COPY [[MOVi64imm]]
%0(s64) = G_CONSTANT i64 1234567890123
%x0 = COPY %0(s64)
...
---
-# CHECK-LABEL: name: fconst_s32
name: fconst_s32
legalized: true
regBankSelected: true
registers:
- { id: 0, class: fpr }
-# CHECK: body:
-# CHECK: [[TMP:%[0-9]+]] = MOVi32imm 1080033280
-# CHECK: %0 = COPY [[TMP]]
body: |
bb.0:
+ ; CHECK-LABEL: name: fconst_s32
+ ; CHECK: [[MOVi32imm:%[0-9]+]] = MOVi32imm 1080033280
+ ; CHECK: [[COPY:%[0-9]+]] = COPY [[MOVi32imm]]
+ ; CHECK: %s0 = COPY [[COPY]]
%0(s32) = G_FCONSTANT float 3.5
%s0 = COPY %0(s32)
...
---
-# CHECK-LABEL: name: fconst_s64
name: fconst_s64
legalized: true
regBankSelected: true
registers:
- { id: 0, class: fpr }
-# CHECK: body:
-# CHECK: [[TMP:%[0-9]+]] = MOVi64imm 4607182418800017408
-# CHECK: %0 = COPY [[TMP]]
body: |
bb.0:
+ ; CHECK-LABEL: name: fconst_s64
+ ; CHECK: [[MOVi64imm:%[0-9]+]] = MOVi64imm 4607182418800017408
+ ; CHECK: [[COPY:%[0-9]+]] = COPY [[MOVi64imm]]
+ ; CHECK: %d0 = COPY [[COPY]]
%0(s64) = G_FCONSTANT double 1.0
%d0 = COPY %0(s64)
...
---
-# CHECK-LABEL: name: fconst_s32_0
name: fconst_s32_0
legalized: true
regBankSelected: true
registers:
- { id: 0, class: fpr }
-# CHECK: body:
-# CHECK: [[TMP:%[0-9]+]] = FMOVS0
-# CHECK: %s0 = COPY [[TMP]]
body: |
bb.0:
+ ; CHECK-LABEL: name: fconst_s32_0
+ ; CHECK: [[FMOVS0_:%[0-9]+]] = FMOVS0
+ ; CHECK: %s0 = COPY [[FMOVS0_]]
%0(s32) = G_FCONSTANT float 0.0
%s0 = COPY %0(s32)
...
---
-# CHECK-LABEL: name: fconst_s64_0
name: fconst_s64_0
legalized: true
regBankSelected: true
registers:
- { id: 0, class: fpr }
-# CHECK: body:
-# CHECK: [[TMP:%[0-9]+]] = FMOVD0
-# CHECK: %s0 = COPY [[TMP]]
body: |
bb.0:
+ ; CHECK-LABEL: name: fconst_s64_0
+ ; CHECK: [[FMOVD0_:%[0-9]+]] = FMOVD0
+ ; CHECK: %s0 = COPY [[FMOVD0_]]
%0(s64) = G_FCONSTANT double 0.0
%s0 = COPY %0(s64)
...
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-dbg-value.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-dbg-value.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-dbg-value.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-dbg-value.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -mtriple arm64-- -run-pass=instruction-select -global-isel %s -o - | FileCheck %s
--- |
@@ -35,37 +36,33 @@
...
---
-# CHECK-LABEL: name: test_dbg_value
name: test_dbg_value
legalized: true
regBankSelected: true
body: |
bb.0:
liveins: %w0
+ ; CHECK-LABEL: name: test_dbg_value
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %w0
+ ; CHECK: [[ADDWrr:%[0-9]+]] = ADDWrr [[COPY]], [[COPY]]
+ ; CHECK: %w0 = COPY [[ADDWrr]]
+ ; CHECK: DBG_VALUE debug-use [[ADDWrr]], debug-use _, !7, !DIExpression(), debug-location !9
%0:gpr(s32) = COPY %w0
%1:gpr(s32) = G_ADD %0, %0
%w0 = COPY %1(s32)
-
- ; CHECK: %0 = COPY %w0
- ; CHECK-NEXT: %1 = ADDWrr %0, %0
- ; CHECK-NEXT: %w0 = COPY %1
- ; CHECK-NEXT: DBG_VALUE debug-use %1, debug-use _, !7, !DIExpression(), debug-location !9
-
DBG_VALUE debug-use %1(s32), debug-use _, !7, !DIExpression(), debug-location !9
...
---
-# CHECK-LABEL: name: test_dbg_value_dead
name: test_dbg_value_dead
legalized: true
regBankSelected: true
body: |
bb.0:
liveins: %w0
- %0:gpr(s32) = COPY %w0
-
+ ; CHECK-LABEL: name: test_dbg_value_dead
; CHECK-NOT: COPY
; CHECK: DBG_VALUE debug-use _, debug-use _, !7, !DIExpression(), debug-location !9
-
+ %0:gpr(s32) = COPY %w0
DBG_VALUE debug-use %0(s32), debug-use _, !7, !DIExpression(), debug-location !9
...
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-pr32733.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-pr32733.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-pr32733.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-pr32733.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs -global-isel %s -o - | FileCheck %s
--- |
@@ -5,11 +6,10 @@
entry:
ret i32 0
}
-
+
declare i32 @printf(i8*, ...)
...
---
-# CHECK-LABEL: name: main
name: main
alignment: 2
exposesReturnsTwice: false
@@ -17,7 +17,7 @@ legalized: true
regBankSelected: true
selected: false
tracksRegLiveness: true
-registers:
+registers:
- { id: 0, class: gpr }
- { id: 1, class: gpr }
- { id: 2, class: gpr }
@@ -34,7 +34,7 @@ registers:
- { id: 13, class: gpr }
- { id: 14, class: gpr }
- { id: 15, class: gpr }
-frameInfo:
+frameInfo:
isFrameAddressTaken: false
isReturnAddressTaken: false
hasStackMap: false
@@ -48,13 +48,15 @@ frameInfo:
hasOpaqueSPAdjustment: false
hasVAStart: false
hasMustTailInVarArgFunc: false
-# CHECK: body:
-# CHECK: %1 = COPY %w0
-# CHECK-NOT: %2 = ORNWrr %wzr, %1
-# CHECK: %4 = EONWrr %1, %3
body: |
bb.1.entry:
liveins: %w0
+ ; CHECK-LABEL: name: main
+ ; CHECK: liveins: %w0
+ ; CHECK: [[MOVi32imm:%[0-9]+]] = MOVi32imm 1
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %w0
+ ; CHECK: [[EONWrr:%[0-9]+]] = EONWrr [[COPY]], [[MOVi32imm]]
+ ; CHECK: %w0 = COPY [[EONWrr]]
%0(s32) = G_CONSTANT i32 -1
%3(s32) = G_CONSTANT i32 1
%1(s32) = COPY %w0
Modified: llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-add.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-add.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-add.mir (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-add.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -13,9 +14,11 @@ registers:
body: |
bb.0:
liveins: %vgpr0, %vgpr1
- ; CHECK-LABEL: name: test_add
- ; CHECK: %2(s32) = G_ADD %0, %1
+ ; CHECK-LABEL: name: test_add
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %vgpr0
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY %vgpr1
+ ; CHECK: [[ADD:%[0-9]+]](s32) = G_ADD [[COPY]], [[COPY1]]
%0(s32) = COPY %vgpr0
%1(s32) = COPY %vgpr1
%2(s32) = G_ADD %0, %1
Modified: llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -13,9 +14,11 @@ registers:
body: |
bb.0:
liveins: %vgpr0, %vgpr1
- ; CHECK-LABEL: name: test_and
- ; CHECK: %2(s32) = G_AND %0, %1
+ ; CHECK-LABEL: name: test_and
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %vgpr0
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY %vgpr1
+ ; CHECK: [[AND:%[0-9]+]](s32) = G_AND [[COPY]], [[COPY1]]
%0(s32) = COPY %vgpr0
%1(s32) = COPY %vgpr1
%2(s32) = G_AND %0, %1
Modified: llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-bitcast.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-bitcast.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-bitcast.mir (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-bitcast.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -13,10 +14,11 @@ registers:
body: |
bb.0:
liveins: %vgpr0
- ; CHECK-LABEL: name: test_bitcast
- ; CHECK: %1(<2 x s16>) = G_BITCAST %0
- ; CHECK: %2(s32) = G_BITCAST %1
+ ; CHECK-LABEL: name: test_bitcast
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %vgpr0
+ ; CHECK: [[BITCAST:%[0-9]+]](<2 x s16>) = G_BITCAST [[COPY]](s32)
+ ; CHECK: [[BITCAST1:%[0-9]+]](s32) = G_BITCAST [[BITCAST]](<2 x s16>)
%0(s32) = COPY %vgpr0
%1(<2 x s16>) = G_BITCAST %0
%2(s32) = G_BITCAST %1
Modified: llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-constant.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-constant.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-constant.mir (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-constant.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -24,10 +25,10 @@ registers:
- { id: 1, class: _ }
body: |
bb.0.entry:
- ; CHECK-LABEL: name: test_constant
- ; CHECK: %0(s32) = G_CONSTANT i32 5
- ; CHECK: %1(s1) = G_CONSTANT i1 false
+ ; CHECK-LABEL: name: test_constant
+ ; CHECK: [[C:%[0-9]+]](s32) = G_CONSTANT i32 5
+ ; CHECK: [[C1:%[0-9]+]](s1) = G_CONSTANT i1 false
%0(s32) = G_CONSTANT i32 5
%1(s1) = G_CONSTANT i1 0
G_INTRINSIC_W_SIDE_EFFECTS intrinsic(@llvm.amdgcn.exp.f32), %0, %0, %0, %0, %0, %0, %1, %1;
@@ -40,10 +41,10 @@ registers:
- { id: 1, class: _ }
body: |
bb.0.entry:
- ; CHECK-LABEL: name: test_fconstant
- ; CHECK: %0(s32) = G_FCONSTANT float 1.000000e+00
- ; CHECK: %1(s32) = G_FCONSTANT float 7.5
+ ; CHECK-LABEL: name: test_fconstant
+ ; CHECK: [[C:%[0-9]+]](s32) = G_FCONSTANT float 1.000000e+00
+ ; CHECK: [[C1:%[0-9]+]](s32) = G_FCONSTANT float 7.500000e+00
%0(s32) = G_FCONSTANT float 1.0
%1(s32) = G_FCONSTANT float 7.5
...
Modified: llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -13,9 +14,11 @@ registers:
body: |
bb.0:
liveins: %vgpr0, %vgpr1
- ; CHECK-LABEL: name: test_fmul
- ; CHECK: %2(s32) = G_FMUL %0, %1
+ ; CHECK-LABEL: name: test_fmul
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %vgpr0
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY %vgpr1
+ ; CHECK: [[FMUL:%[0-9]+]](s32) = G_FMUL [[COPY]], [[COPY1]]
%0(s32) = COPY %vgpr0
%1(s32) = COPY %vgpr1
%2(s32) = G_FMUL %0, %1
Modified: llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-icmp.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-icmp.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-icmp.mir (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-icmp.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -march=amdgcn -mcpu=fiji -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -16,9 +17,11 @@ registers:
body: |
bb.0.entry:
liveins: %vgpr0
+ ; CHECK-LABEL: name: test_icmp
+ ; CHECK: [[C:%[0-9]+]](s32) = G_CONSTANT i32 0
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %vgpr0
+ ; CHECK: [[ICMP:%[0-9]+]](s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]
%0(s32) = G_CONSTANT i32 0
%1(s32) = COPY %vgpr0
-
- ; CHECK: %2(s1) = G_ICMP intpred(ne), %0(s32), %1
%2(s1) = G_ICMP intpred(ne), %0, %1
...
Modified: llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-or.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-or.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-or.mir (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-or.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -12,9 +13,11 @@ registers:
body: |
bb.0:
liveins: %vgpr0, %vgpr1
- ; CHECK-LABEL: name: test_or
- ; CHECK: %2(s32) = G_OR %0, %1
+ ; CHECK-LABEL: name: test_or
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %vgpr0
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY %vgpr1
+ ; CHECK: [[OR:%[0-9]+]](s32) = G_OR [[COPY]], [[COPY1]]
%0(s32) = COPY %vgpr0
%1(s32) = COPY %vgpr1
%2(s32) = G_OR %0, %1
Modified: llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-select.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-select.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-select.mir (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-select.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -march=amdgcn -mcpu=fiji -run-pass=legalizer -global-isel %s -o - | FileCheck %s
--- |
@@ -16,13 +17,19 @@ registers:
body: |
bb.0:
liveins: %vgpr0
+ ; CHECK-LABEL: name: test_select
+ ; CHECK: [[C:%[0-9]+]](s32) = G_CONSTANT i32 0
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %vgpr0
+ ; CHECK: [[ICMP:%[0-9]+]](s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]
+ ; CHECK: [[C1:%[0-9]+]](s32) = G_CONSTANT i32 1
+ ; CHECK: [[C2:%[0-9]+]](s32) = G_CONSTANT i32 2
+ ; CHECK: [[SELECT:%[0-9]+]](s32) = G_SELECT [[ICMP]](s1), [[C1]], [[C2]]
%0(s32) = G_CONSTANT i32 0
%1(s32) = COPY %vgpr0
%2(s1) = G_ICMP intpred(ne), %0, %1
%3(s32) = G_CONSTANT i32 1
%4(s32) = G_CONSTANT i32 2
- ; CHECK: %5(s32) = G_SELECT %2(s1), %3, %4
%5(s32) = G_SELECT %2, %3, %4
...
Modified: llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir (original)
+++ llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -O0 -run-pass=legalizer -global-isel %s -o - | FileCheck %s
---
@@ -9,9 +10,11 @@ registers:
body: |
bb.0.entry:
liveins: %vgpr0, %vgpr1
- ; CHECK-LABEL: name: test_shl
- ; CHECK: %2(s32) = G_SHL %0, %1
+ ; CHECK-LABEL: name: test_shl
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %vgpr0
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY %vgpr1
+ ; CHECK: [[SHL:%[0-9]+]](s32) = G_SHL [[COPY]], [[COPY1]]
%0(s32) = COPY %vgpr0
%1(s32) = COPY %vgpr1
%2(s32) = G_SHL %0, %1
Modified: llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-instruction-select-cmp.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-instruction-select-cmp.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-instruction-select-cmp.mir (original)
+++ llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-instruction-select-cmp.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -mtriple arm-- -global-isel -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
--- |
define void @test_icmp_eq_s32() { ret void }
@@ -53,11 +54,9 @@
...
---
name: test_icmp_eq_s32
-# CHECK-LABEL: name: test_icmp_eq_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: gprb }
- { id: 1, class: gprb }
@@ -67,33 +66,27 @@ body: |
bb.0:
liveins: %r0, %r1
+ ; CHECK-LABEL: name: test_icmp_eq_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %r0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %r1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, _, implicit-def %cpsr
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 0, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %r0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %r0
-
%1(s32) = COPY %r1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %r1
-
%2(s1) = G_ICMP intpred(eq), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: CMPrr [[VREGX]], [[VREGY]], 14, _, implicit-def %cpsr
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 0, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_icmp_ne_s32
-# CHECK-LABEL: name: test_icmp_ne_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: gprb }
- { id: 1, class: gprb }
@@ -103,33 +96,27 @@ body: |
bb.0:
liveins: %r0, %r1
+ ; CHECK-LABEL: name: test_icmp_ne_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %r0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %r1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, _, implicit-def %cpsr
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 1, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %r0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %r0
-
%1(s32) = COPY %r1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %r1
-
%2(s1) = G_ICMP intpred(ne), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: CMPrr [[VREGX]], [[VREGY]], 14, _, implicit-def %cpsr
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 1, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_icmp_ugt_s32
-# CHECK-LABEL: name: test_icmp_ugt_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: gprb }
- { id: 1, class: gprb }
@@ -139,33 +126,27 @@ body: |
bb.0:
liveins: %r0, %r1
+ ; CHECK-LABEL: name: test_icmp_ugt_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %r0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %r1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, _, implicit-def %cpsr
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 8, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %r0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %r0
-
%1(s32) = COPY %r1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %r1
-
%2(s1) = G_ICMP intpred(ugt), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: CMPrr [[VREGX]], [[VREGY]], 14, _, implicit-def %cpsr
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 8, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_icmp_uge_s32
-# CHECK-LABEL: name: test_icmp_uge_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: gprb }
- { id: 1, class: gprb }
@@ -175,33 +156,27 @@ body: |
bb.0:
liveins: %r0, %r1
+ ; CHECK-LABEL: name: test_icmp_uge_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %r0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %r1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, _, implicit-def %cpsr
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 2, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %r0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %r0
-
%1(s32) = COPY %r1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %r1
-
%2(s1) = G_ICMP intpred(uge), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: CMPrr [[VREGX]], [[VREGY]], 14, _, implicit-def %cpsr
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 2, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_icmp_ult_s32
-# CHECK-LABEL: name: test_icmp_ult_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: gprb }
- { id: 1, class: gprb }
@@ -211,33 +186,27 @@ body: |
bb.0:
liveins: %r0, %r1
+ ; CHECK-LABEL: name: test_icmp_ult_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %r0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %r1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, _, implicit-def %cpsr
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 3, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %r0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %r0
-
%1(s32) = COPY %r1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %r1
-
%2(s1) = G_ICMP intpred(ult), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: CMPrr [[VREGX]], [[VREGY]], 14, _, implicit-def %cpsr
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 3, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_icmp_ule_s32
-# CHECK-LABEL: name: test_icmp_ule_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: gprb }
- { id: 1, class: gprb }
@@ -247,33 +216,27 @@ body: |
bb.0:
liveins: %r0, %r1
+ ; CHECK-LABEL: name: test_icmp_ule_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %r0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %r1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, _, implicit-def %cpsr
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 9, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %r0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %r0
-
%1(s32) = COPY %r1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %r1
-
%2(s1) = G_ICMP intpred(ule), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: CMPrr [[VREGX]], [[VREGY]], 14, _, implicit-def %cpsr
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 9, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_icmp_sgt_s32
-# CHECK-LABEL: name: test_icmp_sgt_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: gprb }
- { id: 1, class: gprb }
@@ -283,33 +246,27 @@ body: |
bb.0:
liveins: %r0, %r1
+ ; CHECK-LABEL: name: test_icmp_sgt_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %r0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %r1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, _, implicit-def %cpsr
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 12, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %r0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %r0
-
%1(s32) = COPY %r1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %r1
-
%2(s1) = G_ICMP intpred(sgt), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: CMPrr [[VREGX]], [[VREGY]], 14, _, implicit-def %cpsr
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 12, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_icmp_sge_s32
-# CHECK-LABEL: name: test_icmp_sge_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: gprb }
- { id: 1, class: gprb }
@@ -319,33 +276,27 @@ body: |
bb.0:
liveins: %r0, %r1
+ ; CHECK-LABEL: name: test_icmp_sge_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %r0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %r1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, _, implicit-def %cpsr
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 10, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %r0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %r0
-
%1(s32) = COPY %r1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %r1
-
%2(s1) = G_ICMP intpred(sge), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: CMPrr [[VREGX]], [[VREGY]], 14, _, implicit-def %cpsr
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 10, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_icmp_slt_s32
-# CHECK-LABEL: name: test_icmp_slt_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: gprb }
- { id: 1, class: gprb }
@@ -355,33 +306,27 @@ body: |
bb.0:
liveins: %r0, %r1
+ ; CHECK-LABEL: name: test_icmp_slt_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %r0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %r1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, _, implicit-def %cpsr
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 11, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %r0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %r0
-
%1(s32) = COPY %r1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %r1
-
%2(s1) = G_ICMP intpred(slt), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: CMPrr [[VREGX]], [[VREGY]], 14, _, implicit-def %cpsr
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 11, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_icmp_sle_s32
-# CHECK-LABEL: name: test_icmp_sle_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: gprb }
- { id: 1, class: gprb }
@@ -391,33 +336,27 @@ body: |
bb.0:
liveins: %r0, %r1
+ ; CHECK-LABEL: name: test_icmp_sle_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %r0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %r1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: CMPrr [[COPY]], [[COPY1]], 14, _, implicit-def %cpsr
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 13, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %r0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %r0
-
%1(s32) = COPY %r1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %r1
-
%2(s1) = G_ICMP intpred(sle), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: CMPrr [[VREGX]], [[VREGY]], 14, _, implicit-def %cpsr
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 13, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_true_s32
-# CHECK-LABEL: name: test_fcmp_true_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -427,28 +366,23 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_true_s32
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 1, 14, _, _
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
%1(s32) = COPY %s1
-
%2(s1) = G_FCMP floatpred(true), %0(s32), %1
- ; CHECK: [[RES:%[0-9]+]] = MOVi 1, 14, _, _
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_false_s32
-# CHECK-LABEL: name: test_fcmp_false_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -458,28 +392,23 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_false_s32
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
%1(s32) = COPY %s1
-
%2(s1) = G_FCMP floatpred(false), %0(s32), %1
- ; CHECK: [[RES:%[0-9]+]] = MOVi 0, 14, _, _
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_oeq_s32
-# CHECK-LABEL: name: test_fcmp_oeq_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -489,34 +418,28 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_oeq_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %s0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %s1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 0, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %s0
-
%1(s32) = COPY %s1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %s1
-
%2(s1) = G_FCMP floatpred(oeq), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 0, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_ogt_s32
-# CHECK-LABEL: name: test_fcmp_ogt_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -526,34 +449,28 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_ogt_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %s0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %s1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 12, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %s0
-
%1(s32) = COPY %s1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %s1
-
%2(s1) = G_FCMP floatpred(ogt), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 12, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_oge_s32
-# CHECK-LABEL: name: test_fcmp_oge_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -563,34 +480,28 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_oge_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %s0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %s1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 10, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %s0
-
%1(s32) = COPY %s1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %s1
-
%2(s1) = G_FCMP floatpred(oge), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 10, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_olt_s32
-# CHECK-LABEL: name: test_fcmp_olt_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -600,34 +511,28 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_olt_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %s0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %s1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 4, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %s0
-
%1(s32) = COPY %s1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %s1
-
%2(s1) = G_FCMP floatpred(olt), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 4, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_ole_s32
-# CHECK-LABEL: name: test_fcmp_ole_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -637,34 +542,28 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_ole_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %s0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %s1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 9, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %s0
-
%1(s32) = COPY %s1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %s1
-
%2(s1) = G_FCMP floatpred(ole), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 9, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_ord_s32
-# CHECK-LABEL: name: test_fcmp_ord_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -674,34 +573,28 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_ord_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %s0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %s1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 7, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %s0
-
%1(s32) = COPY %s1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %s1
-
%2(s1) = G_FCMP floatpred(ord), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 7, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_ugt_s32
-# CHECK-LABEL: name: test_fcmp_ugt_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -711,34 +604,28 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_ugt_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %s0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %s1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 8, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %s0
-
%1(s32) = COPY %s1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %s1
-
%2(s1) = G_FCMP floatpred(ugt), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 8, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_uge_s32
-# CHECK-LABEL: name: test_fcmp_uge_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -748,34 +635,28 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_uge_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %s0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %s1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 5, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %s0
-
%1(s32) = COPY %s1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %s1
-
%2(s1) = G_FCMP floatpred(uge), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 5, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_ult_s32
-# CHECK-LABEL: name: test_fcmp_ult_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -785,34 +666,28 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_ult_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %s0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %s1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 11, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %s0
-
%1(s32) = COPY %s1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %s1
-
%2(s1) = G_FCMP floatpred(ult), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 11, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_ule_s32
-# CHECK-LABEL: name: test_fcmp_ule_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -822,34 +697,28 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_ule_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %s0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %s1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 13, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %s0
-
%1(s32) = COPY %s1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %s1
-
%2(s1) = G_FCMP floatpred(ule), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 13, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_une_s32
-# CHECK-LABEL: name: test_fcmp_une_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -859,34 +728,28 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_une_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %s0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %s1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 1, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %s0
-
%1(s32) = COPY %s1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %s1
-
%2(s1) = G_FCMP floatpred(une), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 1, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_uno_s32
-# CHECK-LABEL: name: test_fcmp_uno_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -896,34 +759,28 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_uno_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %s0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %s1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 6, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %s0
-
%1(s32) = COPY %s1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %s1
-
%2(s1) = G_FCMP floatpred(uno), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 6, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_one_s32
-# CHECK-LABEL: name: test_fcmp_one_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -933,37 +790,31 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_one_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %s0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %s1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 12, %cpsr
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi1:%[0-9]+]] = MOVCCi [[MOVCCi]], 1, 4, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi1]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %s0
-
%1(s32) = COPY %s1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %s1
-
%2(s1) = G_FCMP floatpred(one), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES1:%[0-9]+]] = MOVCCi [[ZERO]], 1, 12, %cpsr
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[RES1]], 1, 4, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_ueq_s32
-# CHECK-LABEL: name: test_fcmp_ueq_s32
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -973,37 +824,31 @@ body: |
bb.0:
liveins: %s0, %s1
+ ; CHECK-LABEL: name: test_fcmp_ueq_s32
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %s0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %s1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 0, %cpsr
+ ; CHECK: VCMPS [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi1:%[0-9]+]] = MOVCCi [[MOVCCi]], 1, 6, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi1]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s32) = COPY %s0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %s0
-
%1(s32) = COPY %s1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %s1
-
%2(s1) = G_FCMP floatpred(ueq), %0(s32), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES1:%[0-9]+]] = MOVCCi [[ZERO]], 1, 0, %cpsr
- ; CHECK-NEXT: VCMPS [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[RES1]], 1, 6, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_true_s64
-# CHECK-LABEL: name: test_fcmp_true_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1013,28 +858,23 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_true_s64
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 1, 14, _, _
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
%1(s64) = COPY %d1
-
%2(s1) = G_FCMP floatpred(true), %0(s64), %1
- ; CHECK: [[RES:%[0-9]+]] = MOVi 1, 14, _, _
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_false_s64
-# CHECK-LABEL: name: test_fcmp_false_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1044,28 +884,23 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_false_s64
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
%1(s64) = COPY %d1
-
%2(s1) = G_FCMP floatpred(false), %0(s64), %1
- ; CHECK: [[RES:%[0-9]+]] = MOVi 0, 14, _, _
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_oeq_s64
-# CHECK-LABEL: name: test_fcmp_oeq_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1075,34 +910,28 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_oeq_s64
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %d0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %d1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 0, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %d0
-
%1(s64) = COPY %d1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %d1
-
%2(s1) = G_FCMP floatpred(oeq), %0(s64), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 0, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_ogt_s64
-# CHECK-LABEL: name: test_fcmp_ogt_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1112,34 +941,28 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_ogt_s64
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %d0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %d1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 12, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %d0
-
%1(s64) = COPY %d1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %d1
-
%2(s1) = G_FCMP floatpred(ogt), %0(s64), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 12, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_oge_s64
-# CHECK-LABEL: name: test_fcmp_oge_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1149,34 +972,28 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_oge_s64
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %d0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %d1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 10, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %d0
-
%1(s64) = COPY %d1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %d1
-
%2(s1) = G_FCMP floatpred(oge), %0(s64), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 10, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_olt_s64
-# CHECK-LABEL: name: test_fcmp_olt_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1186,34 +1003,28 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_olt_s64
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %d0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %d1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 4, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %d0
-
%1(s64) = COPY %d1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %d1
-
%2(s1) = G_FCMP floatpred(olt), %0(s64), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 4, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_ole_s64
-# CHECK-LABEL: name: test_fcmp_ole_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1223,34 +1034,28 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_ole_s64
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %d0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %d1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 9, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %d0
-
%1(s64) = COPY %d1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %d1
-
%2(s1) = G_FCMP floatpred(ole), %0(s64), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 9, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_ord_s64
-# CHECK-LABEL: name: test_fcmp_ord_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1260,34 +1065,28 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_ord_s64
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %d0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %d1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 7, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %d0
-
%1(s64) = COPY %d1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %d1
-
%2(s1) = G_FCMP floatpred(ord), %0(s64), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 7, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_ugt_s64
-# CHECK-LABEL: name: test_fcmp_ugt_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1297,34 +1096,28 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_ugt_s64
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %d0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %d1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 8, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %d0
-
%1(s64) = COPY %d1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %d1
-
%2(s1) = G_FCMP floatpred(ugt), %0(s64), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 8, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_uge_s64
-# CHECK-LABEL: name: test_fcmp_uge_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1334,34 +1127,28 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_uge_s64
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %d0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %d1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 5, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %d0
-
%1(s64) = COPY %d1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %d1
-
%2(s1) = G_FCMP floatpred(uge), %0(s64), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 5, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_ult_s64
-# CHECK-LABEL: name: test_fcmp_ult_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1371,34 +1158,28 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_ult_s64
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %d0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %d1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 11, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %d0
-
%1(s64) = COPY %d1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %d1
-
%2(s1) = G_FCMP floatpred(ult), %0(s64), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 11, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_ule_s64
-# CHECK-LABEL: name: test_fcmp_ule_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1408,34 +1189,28 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_ule_s64
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %d0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %d1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 13, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %d0
-
%1(s64) = COPY %d1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %d1
-
%2(s1) = G_FCMP floatpred(ule), %0(s64), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 13, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_une_s64
-# CHECK-LABEL: name: test_fcmp_une_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1445,34 +1220,28 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_une_s64
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %d0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %d1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 1, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %d0
-
%1(s64) = COPY %d1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %d1
-
%2(s1) = G_FCMP floatpred(une), %0(s64), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 1, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_uno_s64
-# CHECK-LABEL: name: test_fcmp_uno_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1482,34 +1251,28 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_uno_s64
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %d0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %d1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 6, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %d0
-
%1(s64) = COPY %d1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %d1
-
%2(s1) = G_FCMP floatpred(uno), %0(s64), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[ZERO]], 1, 6, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_one_s64
-# CHECK-LABEL: name: test_fcmp_one_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1519,37 +1282,31 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_one_s64
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %d0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %d1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 12, %cpsr
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi1:%[0-9]+]] = MOVCCi [[MOVCCi]], 1, 4, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi1]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %d0
-
%1(s64) = COPY %d1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %d1
-
%2(s1) = G_FCMP floatpred(one), %0(s64), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES1:%[0-9]+]] = MOVCCi [[ZERO]], 1, 12, %cpsr
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[RES1]], 1, 4, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
---
name: test_fcmp_ueq_s64
-# CHECK-LABEL: name: test_fcmp_ueq_s64
legalized: true
regBankSelected: true
selected: false
-# CHECK: selected: true
registers:
- { id: 0, class: fprb }
- { id: 1, class: fprb }
@@ -1559,27 +1316,23 @@ body: |
bb.0:
liveins: %d0, %d1
+ ; CHECK-LABEL: name: test_fcmp_ueq_s64
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %d0
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY %d1
+ ; CHECK: [[MOVi:%[0-9]+]] = MOVi 0, 14, _, _
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi:%[0-9]+]] = MOVCCi [[MOVi]], 1, 0, %cpsr
+ ; CHECK: VCMPD [[COPY]], [[COPY1]], 14, _, implicit-def %fpscr_nzcv
+ ; CHECK: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
+ ; CHECK: [[MOVCCi1:%[0-9]+]] = MOVCCi [[MOVCCi]], 1, 6, %cpsr
+ ; CHECK: [[ANDri:%[0-9]+]] = ANDri [[MOVCCi1]], 1, 14, _, _
+ ; CHECK: %r0 = COPY [[ANDri]]
+ ; CHECK: BX_RET 14, _, implicit %r0
%0(s64) = COPY %d0
- ; CHECK: [[VREGX:%[0-9]+]] = COPY %d0
-
%1(s64) = COPY %d1
- ; CHECK: [[VREGY:%[0-9]+]] = COPY %d1
-
%2(s1) = G_FCMP floatpred(ueq), %0(s64), %1
- ; CHECK: [[ZERO:%[0-9]+]] = MOVi 0, 14, _, _
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES1:%[0-9]+]] = MOVCCi [[ZERO]], 1, 0, %cpsr
- ; CHECK-NEXT: VCMPD [[VREGX]], [[VREGY]], 14, _, implicit-def %fpscr_nzcv
- ; CHECK-NEXT: FMSTAT 14, _, implicit-def %cpsr, implicit %fpscr_nzcv
- ; CHECK-NEXT: [[RES:%[0-9]+]] = MOVCCi [[RES1]], 1, 6, %cpsr
-
%3(s32) = G_ZEXT %2(s1)
- ; CHECK: [[RET:%[0-9]+]] = ANDri [[RES]], 1, 14, _, _
-
%r0 = COPY %3(s32)
- ; CHECK: %r0 = COPY [[RET]]
-
BX_RET 14, _, implicit %r0
- ; CHECK: BX_RET 14, _, implicit %r0
...
Modified: llvm/trunk/test/CodeGen/MIR/AArch64/atomic-memoperands.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/MIR/AArch64/atomic-memoperands.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/MIR/AArch64/atomic-memoperands.mir (original)
+++ llvm/trunk/test/CodeGen/MIR/AArch64/atomic-memoperands.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=aarch64-none-linux-gnu -run-pass none -o - %s | FileCheck %s
--- |
@@ -8,17 +9,19 @@
...
---
-# CHECK-LABEL: name: atomic_memoperands
-# CHECK: %1(s64) = G_LOAD %0(p0) :: (load unordered 8)
-# CHECK: %2(s32) = G_LOAD %0(p0) :: (load monotonic 4)
-# CHECK: %3(s16) = G_LOAD %0(p0) :: (load acquire 2)
-# CHECK: G_STORE %3(s16), %0(p0) :: (store release 2)
-# CHECK: G_STORE %2(s32), %0(p0) :: (store acq_rel 4)
-# CHECK: G_STORE %1(s64), %0(p0) :: (store syncscope("singlethread") seq_cst 8)
name: atomic_memoperands
body: |
bb.0:
+ ; CHECK-LABEL: name: atomic_memoperands
+ ; CHECK: [[COPY:%[0-9]+]](p0) = COPY %x0
+ ; CHECK: [[LOAD:%[0-9]+]](s64) = G_LOAD [[COPY]](p0) :: (load unordered 8)
+ ; CHECK: [[LOAD1:%[0-9]+]](s32) = G_LOAD [[COPY]](p0) :: (load monotonic 4)
+ ; CHECK: [[LOAD2:%[0-9]+]](s16) = G_LOAD [[COPY]](p0) :: (load acquire 2)
+ ; CHECK: G_STORE [[LOAD2]](s16), [[COPY]](p0) :: (store release 2)
+ ; CHECK: G_STORE [[LOAD1]](s32), [[COPY]](p0) :: (store acq_rel 4)
+ ; CHECK: G_STORE [[LOAD]](s64), [[COPY]](p0) :: (store syncscope("singlethread") seq_cst 8)
+ ; CHECK: RET_ReallyLR
%0:_(p0) = COPY %x0
%1:_(s64) = G_LOAD %0(p0) :: (load unordered 8)
%2:_(s32) = G_LOAD %0(p0) :: (load monotonic 4)
Modified: llvm/trunk/test/CodeGen/MIR/AArch64/target-memoperands.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/MIR/AArch64/target-memoperands.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/MIR/AArch64/target-memoperands.mir (original)
+++ llvm/trunk/test/CodeGen/MIR/AArch64/target-memoperands.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=aarch64-none-linux-gnu -run-pass none -o - %s | FileCheck %s
--- |
@@ -8,15 +9,17 @@
...
---
-# CHECK-LABEL: name: target_memoperands
-# CHECK: %1(s64) = G_LOAD %0(p0) :: ("aarch64-suppress-pair" load 8)
-# CHECK: %2(s32) = G_LOAD %0(p0) :: ("aarch64-strided-access" load 4)
-# CHECK: G_STORE %1(s64), %0(p0) :: ("aarch64-suppress-pair" store 8)
-# CHECK: G_STORE %2(s32), %0(p0) :: ("aarch64-strided-access" store 4)
name: target_memoperands
body: |
bb.0:
+ ; CHECK-LABEL: name: target_memoperands
+ ; CHECK: [[COPY:%[0-9]+]](p0) = COPY %x0
+ ; CHECK: [[LOAD:%[0-9]+]](s64) = G_LOAD [[COPY]](p0) :: ("aarch64-suppress-pair" load 8)
+ ; CHECK: [[LOAD1:%[0-9]+]](s32) = G_LOAD [[COPY]](p0) :: ("aarch64-strided-access" load 4)
+ ; CHECK: G_STORE [[LOAD]](s64), [[COPY]](p0) :: ("aarch64-suppress-pair" store 8)
+ ; CHECK: G_STORE [[LOAD1]](s32), [[COPY]](p0) :: ("aarch64-strided-access" store 4)
+ ; CHECK: RET_ReallyLR
%0:_(p0) = COPY %x0
%1:_(s64) = G_LOAD %0(p0) :: ("aarch64-suppress-pair" load 8)
%2:_(s32) = G_LOAD %0(p0) :: ("aarch64-strided-access" load 4)
Modified: llvm/trunk/test/CodeGen/MIR/AMDGPU/intrinsics.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/MIR/AMDGPU/intrinsics.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/MIR/AMDGPU/intrinsics.mir (original)
+++ llvm/trunk/test/CodeGen/MIR/AMDGPU/intrinsics.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=amdgcn -run-pass none -o - %s | FileCheck %s
--- |
@@ -9,11 +10,12 @@
...
---
# Completely invalid code, but it checks that intrinsics round-trip properly.
-# CHECK: %0(s64) = COPY intrinsic(@llvm.amdgcn.sbfe)
name: use_intrin
registers:
- { id: 0, class: _ }
body: |
bb.0:
+ ; CHECK-LABEL: name: use_intrin
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY intrinsic(@llvm.amdgcn.sbfe)
%0(s64) = COPY intrinsic(@llvm.amdgcn.sbfe.i32)
...
Modified: llvm/trunk/test/CodeGen/MIR/AMDGPU/target-flags.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/MIR/AMDGPU/target-flags.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/MIR/AMDGPU/target-flags.mir (original)
+++ llvm/trunk/test/CodeGen/MIR/AMDGPU/target-flags.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -march=amdgcn -run-pass none -o - %s | FileCheck %s
--- |
define amdgpu_kernel void @flags() {
@@ -8,8 +9,6 @@
...
---
-# CHECK: SI_PC_ADD_REL_OFFSET target-flags(amdgpu-rel32-lo) @foo + 4, target-flags(amdgpu-rel32-hi) @foo + 4, implicit-def dead %scc
-# CHECK: %1 = S_MOV_B64 target-flags(amdgpu-gotprel) @foo
name: flags
liveins:
@@ -22,6 +21,10 @@ registers:
body: |
bb.0:
liveins: %sgpr0_sgpr1
+ ; CHECK-LABEL: name: flags
+ ; CHECK: [[SI_PC_ADD_REL_OFFSET:%[0-9]+]] = SI_PC_ADD_REL_OFFSET target-flags(amdgpu-rel32-lo) @foo + 4, target-flags(amdgpu-rel32-hi) @foo + 4, implicit-def dead %scc
+ ; CHECK: [[S_MOV_B64_:%[0-9]+]] = S_MOV_B64 target-flags(amdgpu-gotprel) @foo
+ ; CHECK: S_ENDPGM
%0 = SI_PC_ADD_REL_OFFSET target-flags(amdgpu-rel32-lo) @foo + 4, target-flags(amdgpu-rel32-hi) @foo + 4, implicit-def dead %scc
%1 = S_MOV_B64 target-flags(amdgpu-gotprel) @foo
Modified: llvm/trunk/test/CodeGen/MIR/X86/stack-object-operands.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/MIR/X86/stack-object-operands.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/MIR/X86/stack-object-operands.mir (original)
+++ llvm/trunk/test/CodeGen/MIR/X86/stack-object-operands.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -march=x86 -run-pass none -o - %s | FileCheck %s
# This test ensures that the MIR parser parses stack object machine operands
# correctly.
@@ -29,12 +30,14 @@ stack:
- { id: 0, name: b, size: 4, alignment: 4 }
- { id: 1, size: 4, alignment: 4 }
body: |
- ; CHECK: bb.0.entry:
- ; CHECK-NEXT: %0 = MOV32rm %fixed-stack.0, 1, _, 0, _
- ; CHECK-NEXT: MOV32mr %stack.0.b, 1, _, 0, _, %0
- ; CHECK-NEXT: MOV32mi %stack.1, 1, _, 0, _, 2
- ; CHECK-NEXT: %1 = MOV32rm %stack.0.b, 1, _, 0, _
bb.0.entry:
+ ; CHECK-LABEL: name: test
+ ; CHECK: [[MOV32rm:%[0-9]+]] = MOV32rm %fixed-stack.0, 1, _, 0, _
+ ; CHECK: MOV32mr %stack.0.b, 1, _, 0, _, [[MOV32rm]]
+ ; CHECK: MOV32mi %stack.1, 1, _, 0, _, 2
+ ; CHECK: [[MOV32rm1:%[0-9]+]] = MOV32rm %stack.0.b, 1, _, 0, _
+ ; CHECK: %eax = COPY [[MOV32rm1]]
+ ; CHECK: RETL %eax
%0 = MOV32rm %fixed-stack.0, 1, _, 0, _
MOV32mr %stack.0.b, 1, _, 0, _, %0
MOV32mi %stack.1, 1, _, 0, _, 2
Modified: llvm/trunk/test/CodeGen/MIR/X86/subregister-index-operands.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/MIR/X86/subregister-index-operands.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/MIR/X86/subregister-index-operands.mir (original)
+++ llvm/trunk/test/CodeGen/MIR/X86/subregister-index-operands.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -march=x86-64 -run-pass none -o - %s | FileCheck %s
# This test ensures that the MIR parser parses and prints subregisters index
# operands correctly.
@@ -11,10 +12,6 @@
...
---
-# CHECK-LABEL: name: t
-# CHECK: %0 = INSERT_SUBREG %edi, %al, {{[0-9]+}}
-# CHECK: %1 = EXTRACT_SUBREG %eax, {{[0-9]+}}
-# CHECK: %ax = REG_SEQUENCE %1, {{[0-9]+}}, %1, {{[0-9]+}}
name: t
tracksRegLiveness: true
registers:
@@ -23,6 +20,12 @@ registers:
body: |
bb.0.entry:
liveins: %edi, %eax
+ ; CHECK-LABEL: name: t
+ ; CHECK: liveins: %edi, %eax
+ ; CHECK: [[INSERT_SUBREG:%[0-9]+]] = INSERT_SUBREG %edi, %al, 1
+ ; CHECK: [[EXTRACT_SUBREG:%[0-9]+]] = EXTRACT_SUBREG %eax, 2
+ ; CHECK: %ax = REG_SEQUENCE [[EXTRACT_SUBREG]], 1, [[EXTRACT_SUBREG]], 2
+ ; CHECK: RETQ %ax
%0 = INSERT_SUBREG %edi, %al, %subreg.sub_8bit
%1 = EXTRACT_SUBREG %eax, %subreg.sub_8bit_hi
%ax = REG_SEQUENCE %1, %subreg.sub_8bit, %1, %subreg.sub_8bit_hi
Modified: llvm/trunk/test/CodeGen/MIR/X86/subregister-operands.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/MIR/X86/subregister-operands.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/MIR/X86/subregister-operands.mir (original)
+++ llvm/trunk/test/CodeGen/MIR/X86/subregister-operands.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -march=x86-64 -run-pass none -o - %s | FileCheck %s
# This test ensures that the MIR parser parses subregisters in register operands
# correctly.
@@ -20,8 +21,13 @@ registers:
body: |
bb.0.entry:
liveins: %edi
- ; CHECK: %0 = COPY %edi
- ; CHECK-NEXT: %1 = COPY %0.sub_8bit
+ ; CHECK-LABEL: name: t
+ ; CHECK: liveins: %edi
+ ; CHECK: [[COPY:%[0-9]+]] = COPY %edi
+ ; CHECK: [[COPY1:%[0-9]+]] = COPY [[COPY]].sub_8bit
+ ; CHECK: [[AND8ri:%[0-9]+]] = AND8ri [[COPY1]], 1, implicit-def %eflags
+ ; CHECK: %al = COPY [[AND8ri]]
+ ; CHECK: RETQ %al
%0 = COPY %edi
%1 = COPY %0.sub_8bit
%2 = AND8ri %1, 1, implicit-def %eflags
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-add-v128.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-add-v128.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-add-v128.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-add-v128.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -mattr=+sse2 -global-isel -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=ALL --check-prefix=SSE2
--- |
@@ -23,7 +24,6 @@
...
---
name: test_add_v16i8
-# ALL-LABEL: name: test_add_v16i8
alignment: 4
legalized: false
regBankSelected: false
@@ -31,14 +31,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# ALL: %0(<16 x s8>) = IMPLICIT_DEF
-# ALL-NEXT: %1(<16 x s8>) = IMPLICIT_DEF
-# ALL-NEXT: %2(<16 x s8>) = G_ADD %0, %1
-# ALL-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; ALL-LABEL: name: test_add_v16i8
+ ; ALL: [[DEF:%[0-9]+]](<16 x s8>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<16 x s8>) = IMPLICIT_DEF
+ ; ALL: [[ADD:%[0-9]+]](<16 x s8>) = G_ADD [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<16 x s8>) = IMPLICIT_DEF
%1(<16 x s8>) = IMPLICIT_DEF
%2(<16 x s8>) = G_ADD %0, %1
@@ -47,7 +48,6 @@ body: |
...
---
name: test_add_v8i16
-# ALL-LABEL: name: test_add_v8i16
alignment: 4
legalized: false
regBankSelected: false
@@ -55,14 +55,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# ALL: %0(<8 x s16>) = IMPLICIT_DEF
-# ALL-NEXT: %1(<8 x s16>) = IMPLICIT_DEF
-# ALL-NEXT: %2(<8 x s16>) = G_ADD %0, %1
-# ALL-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; ALL-LABEL: name: test_add_v8i16
+ ; ALL: [[DEF:%[0-9]+]](<8 x s16>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<8 x s16>) = IMPLICIT_DEF
+ ; ALL: [[ADD:%[0-9]+]](<8 x s16>) = G_ADD [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<8 x s16>) = IMPLICIT_DEF
%1(<8 x s16>) = IMPLICIT_DEF
%2(<8 x s16>) = G_ADD %0, %1
@@ -71,7 +72,6 @@ body: |
...
---
name: test_add_v4i32
-# ALL-LABEL: name: test_add_v4i32
alignment: 4
legalized: false
regBankSelected: false
@@ -79,14 +79,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# ALL: %0(<4 x s32>) = IMPLICIT_DEF
-# ALL-NEXT: %1(<4 x s32>) = IMPLICIT_DEF
-# ALL-NEXT: %2(<4 x s32>) = G_ADD %0, %1
-# ALL-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; ALL-LABEL: name: test_add_v4i32
+ ; ALL: [[DEF:%[0-9]+]](<4 x s32>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<4 x s32>) = IMPLICIT_DEF
+ ; ALL: [[ADD:%[0-9]+]](<4 x s32>) = G_ADD [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<4 x s32>) = IMPLICIT_DEF
%1(<4 x s32>) = IMPLICIT_DEF
%2(<4 x s32>) = G_ADD %0, %1
@@ -95,7 +96,6 @@ body: |
...
---
name: test_add_v2i64
-# ALL-LABEL: name: test_add_v2i64
alignment: 4
legalized: false
regBankSelected: false
@@ -103,14 +103,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# ALL: %0(<2 x s64>) = IMPLICIT_DEF
-# ALL-NEXT: %1(<2 x s64>) = IMPLICIT_DEF
-# ALL-NEXT: %2(<2 x s64>) = G_ADD %0, %1
-# ALL-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; ALL-LABEL: name: test_add_v2i64
+ ; ALL: [[DEF:%[0-9]+]](<2 x s64>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<2 x s64>) = IMPLICIT_DEF
+ ; ALL: [[ADD:%[0-9]+]](<2 x s64>) = G_ADD [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<2 x s64>) = IMPLICIT_DEF
%1(<2 x s64>) = IMPLICIT_DEF
%2(<2 x s64>) = G_ADD %0, %1
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-and-scalar.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-and-scalar.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-and-scalar.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-and-scalar.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -global-isel -run-pass=legalizer %s -o - | FileCheck %s
--- |
@@ -29,7 +30,6 @@
...
---
name: test_and_i1
-# CHECK-LABEL: name: test_and_i1
alignment: 4
legalized: false
regBankSelected: false
@@ -37,15 +37,16 @@ registers:
- { id: 0, class: _, preferred-register: '' }
- { id: 1, class: _, preferred-register: '' }
- { id: 2, class: _, preferred-register: '' }
-# CHECK: %0(s32) = COPY %edx
-# CHECK-NEXT: %3(s8) = G_TRUNC %0(s32)
-# CHECK-NEXT: %4(s8) = G_TRUNC %0(s32)
-# CHECK-NEXT: %5(s8) = G_AND %3, %4
-# CHECK-NEXT: %2(s1) = G_TRUNC %5(s8)
-# CHECK-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_and_i1
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %edx
+ ; CHECK: [[TRUNC:%[0-9]+]](s8) = G_TRUNC [[COPY]](s32)
+ ; CHECK: [[TRUNC1:%[0-9]+]](s8) = G_TRUNC [[COPY]](s32)
+ ; CHECK: [[AND:%[0-9]+]](s8) = G_AND [[TRUNC]], [[TRUNC1]]
+ ; CHECK: [[TRUNC2:%[0-9]+]](s1) = G_TRUNC [[AND]](s8)
+ ; CHECK: RET 0
%0(s32) = COPY %edx
%1(s1) = G_TRUNC %0(s32)
%2(s1) = G_AND %1, %1
@@ -53,7 +54,6 @@ body: |
...
---
name: test_and_i8
-# CHECK-LABEL: name: test_and_i8
alignment: 4
legalized: false
regBankSelected: false
@@ -64,12 +64,13 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s8) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s8) = G_AND %0, %0
-# CHECK-NEXT: %al = COPY %1(s8)
-# CHECK-NEXT: RET 0, implicit %al
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_and_i8
+ ; CHECK: [[DEF:%[0-9]+]](s8) = IMPLICIT_DEF
+ ; CHECK: [[AND:%[0-9]+]](s8) = G_AND [[DEF]], [[DEF]]
+ ; CHECK: %al = COPY [[AND]](s8)
+ ; CHECK: RET 0, implicit %al
%0(s8) = IMPLICIT_DEF
%1(s8) = G_AND %0, %0
%al = COPY %1(s8)
@@ -78,7 +79,6 @@ body: |
...
---
name: test_and_i16
-# CHECK-LABEL: name: test_and_i16
alignment: 4
legalized: false
regBankSelected: false
@@ -89,12 +89,13 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s16) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s16) = G_AND %0, %0
-# CHECK-NEXT: %ax = COPY %1(s16)
-# CHECK-NEXT: RET 0, implicit %ax
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_and_i16
+ ; CHECK: [[DEF:%[0-9]+]](s16) = IMPLICIT_DEF
+ ; CHECK: [[AND:%[0-9]+]](s16) = G_AND [[DEF]], [[DEF]]
+ ; CHECK: %ax = COPY [[AND]](s16)
+ ; CHECK: RET 0, implicit %ax
%0(s16) = IMPLICIT_DEF
%1(s16) = G_AND %0, %0
%ax = COPY %1(s16)
@@ -103,7 +104,6 @@ body: |
...
---
name: test_and_i32
-# CHECK-LABEL: name: test_and_i32
alignment: 4
legalized: false
regBankSelected: false
@@ -114,12 +114,13 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s32) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s32) = G_AND %0, %0
-# CHECK-NEXT: %eax = COPY %1(s32)
-# CHECK-NEXT: RET 0, implicit %eax
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_and_i32
+ ; CHECK: [[DEF:%[0-9]+]](s32) = IMPLICIT_DEF
+ ; CHECK: [[AND:%[0-9]+]](s32) = G_AND [[DEF]], [[DEF]]
+ ; CHECK: %eax = COPY [[AND]](s32)
+ ; CHECK: RET 0, implicit %eax
%0(s32) = IMPLICIT_DEF
%1(s32) = G_AND %0, %0
%eax = COPY %1(s32)
@@ -128,7 +129,6 @@ body: |
...
---
name: test_and_i64
-# CHECK-LABEL: name: test_and_i64
alignment: 4
legalized: false
regBankSelected: false
@@ -139,12 +139,13 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s64) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s64) = G_AND %0, %0
-# CHECK-NEXT: %rax = COPY %1(s64)
-# CHECK-NEXT: RET 0, implicit %rax
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_and_i64
+ ; CHECK: [[DEF:%[0-9]+]](s64) = IMPLICIT_DEF
+ ; CHECK: [[AND:%[0-9]+]](s64) = G_AND [[DEF]], [[DEF]]
+ ; CHECK: %rax = COPY [[AND]](s64)
+ ; CHECK: RET 0, implicit %rax
%0(s64) = IMPLICIT_DEF
%1(s64) = G_AND %0, %0
%rax = COPY %1(s64)
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-cmp.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-cmp.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-cmp.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-cmp.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -global-isel -run-pass=legalizer %s -o - | FileCheck %s
--- |
@@ -34,7 +35,6 @@
...
---
name: test_cmp_i8
-# CHECK-LABEL: name: test_cmp_i8
alignment: 4
legalized: false
regBankSelected: false
@@ -43,16 +43,17 @@ registers:
- { id: 1, class: _ }
- { id: 2, class: _ }
- { id: 3, class: _ }
-# CHECK: %0(s8) = COPY %dil
-# CHECK-NEXT: %1(s8) = COPY %sil
-# CHECK-NEXT: %2(s1) = G_ICMP intpred(ult), %0(s8), %1
-# CHECK-NEXT: %3(s32) = G_ZEXT %2(s1)
-# CHECK-NEXT: %eax = COPY %3(s32)
-# CHECK-NEXT: RET 0, implicit %eax
body: |
bb.1 (%ir-block.0):
liveins: %edi, %esi
+ ; CHECK-LABEL: name: test_cmp_i8
+ ; CHECK: [[COPY:%[0-9]+]](s8) = COPY %dil
+ ; CHECK: [[COPY1:%[0-9]+]](s8) = COPY %sil
+ ; CHECK: [[ICMP:%[0-9]+]](s1) = G_ICMP intpred(ult), [[COPY]](s8), [[COPY1]]
+ ; CHECK: [[ZEXT:%[0-9]+]](s32) = G_ZEXT [[ICMP]](s1)
+ ; CHECK: %eax = COPY [[ZEXT]](s32)
+ ; CHECK: RET 0, implicit %eax
%0(s8) = COPY %dil
%1(s8) = COPY %sil
%2(s1) = G_ICMP intpred(ult), %0(s8), %1
@@ -63,7 +64,6 @@ body: |
...
---
name: test_cmp_i16
-# CHECK-LABEL: name: test_cmp_i16
alignment: 4
legalized: false
regBankSelected: false
@@ -72,16 +72,17 @@ registers:
- { id: 1, class: _ }
- { id: 2, class: _ }
- { id: 3, class: _ }
-# CHECK: %0(s16) = COPY %di
-# CHECK-NEXT: %1(s16) = COPY %si
-# CHECK-NEXT: %2(s1) = G_ICMP intpred(ult), %0(s16), %1
-# CHECK-NEXT: %3(s32) = G_ZEXT %2(s1)
-# CHECK-NEXT: %eax = COPY %3(s32)
-# CHECK-NEXT: RET 0, implicit %eax
body: |
bb.1 (%ir-block.0):
liveins: %edi, %esi
+ ; CHECK-LABEL: name: test_cmp_i16
+ ; CHECK: [[COPY:%[0-9]+]](s16) = COPY %di
+ ; CHECK: [[COPY1:%[0-9]+]](s16) = COPY %si
+ ; CHECK: [[ICMP:%[0-9]+]](s1) = G_ICMP intpred(ult), [[COPY]](s16), [[COPY1]]
+ ; CHECK: [[ZEXT:%[0-9]+]](s32) = G_ZEXT [[ICMP]](s1)
+ ; CHECK: %eax = COPY [[ZEXT]](s32)
+ ; CHECK: RET 0, implicit %eax
%0(s16) = COPY %di
%1(s16) = COPY %si
%2(s1) = G_ICMP intpred(ult), %0(s16), %1
@@ -92,7 +93,6 @@ body: |
...
---
name: test_cmp_i32
-# CHECK-LABEL: name: test_cmp_i32
alignment: 4
legalized: false
regBankSelected: false
@@ -101,16 +101,17 @@ registers:
- { id: 1, class: _ }
- { id: 2, class: _ }
- { id: 3, class: _ }
-# CHECK: %0(s32) = COPY %edi
-# CHECK-NEXT: %1(s32) = COPY %esi
-# CHECK-NEXT: %2(s1) = G_ICMP intpred(ult), %0(s32), %1
-# CHECK-NEXT: %3(s32) = G_ZEXT %2(s1)
-# CHECK-NEXT: %eax = COPY %3(s32)
-# CHECK-NEXT: RET 0, implicit %eax
body: |
bb.1 (%ir-block.0):
liveins: %edi, %esi
+ ; CHECK-LABEL: name: test_cmp_i32
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %edi
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY %esi
+ ; CHECK: [[ICMP:%[0-9]+]](s1) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY1]]
+ ; CHECK: [[ZEXT:%[0-9]+]](s32) = G_ZEXT [[ICMP]](s1)
+ ; CHECK: %eax = COPY [[ZEXT]](s32)
+ ; CHECK: RET 0, implicit %eax
%0(s32) = COPY %edi
%1(s32) = COPY %esi
%2(s1) = G_ICMP intpred(ult), %0(s32), %1
@@ -121,7 +122,6 @@ body: |
...
---
name: test_cmp_i64
-# CHECK-LABEL: name: test_cmp_i64
alignment: 4
legalized: false
regBankSelected: false
@@ -130,16 +130,17 @@ registers:
- { id: 1, class: _ }
- { id: 2, class: _ }
- { id: 3, class: _ }
-# CHECK: %0(s64) = COPY %rdi
-# CHECK-NEXT: %1(s64) = COPY %rsi
-# CHECK-NEXT: %2(s1) = G_ICMP intpred(ult), %0(s64), %1
-# CHECK-NEXT: %3(s32) = G_ZEXT %2(s1)
-# CHECK-NEXT: %eax = COPY %3(s32)
-# CHECK-NEXT: RET 0, implicit %eax
body: |
bb.1 (%ir-block.0):
liveins: %rdi, %rsi
+ ; CHECK-LABEL: name: test_cmp_i64
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %rdi
+ ; CHECK: [[COPY1:%[0-9]+]](s64) = COPY %rsi
+ ; CHECK: [[ICMP:%[0-9]+]](s1) = G_ICMP intpred(ult), [[COPY]](s64), [[COPY1]]
+ ; CHECK: [[ZEXT:%[0-9]+]](s32) = G_ZEXT [[ICMP]](s1)
+ ; CHECK: %eax = COPY [[ZEXT]](s32)
+ ; CHECK: RET 0, implicit %eax
%0(s64) = COPY %rdi
%1(s64) = COPY %rsi
%2(s1) = G_ICMP intpred(ult), %0(s64), %1
@@ -150,7 +151,6 @@ body: |
...
---
name: test_cmp_p0
-# CHECK-LABEL: name: test_cmp_p0
alignment: 4
legalized: false
regBankSelected: false
@@ -159,16 +159,17 @@ registers:
- { id: 1, class: _ }
- { id: 2, class: _ }
- { id: 3, class: _ }
-# CHECK: %0(p0) = COPY %rdi
-# CHECK-NEXT: %1(p0) = COPY %rsi
-# CHECK-NEXT: %2(s1) = G_ICMP intpred(ult), %0(p0), %1
-# CHECK-NEXT: %3(s32) = G_ZEXT %2(s1)
-# CHECK-NEXT: %eax = COPY %3(s32)
-# CHECK-NEXT: RET 0, implicit %eax
body: |
bb.1 (%ir-block.0):
liveins: %rdi, %rsi
+ ; CHECK-LABEL: name: test_cmp_p0
+ ; CHECK: [[COPY:%[0-9]+]](p0) = COPY %rdi
+ ; CHECK: [[COPY1:%[0-9]+]](p0) = COPY %rsi
+ ; CHECK: [[ICMP:%[0-9]+]](s1) = G_ICMP intpred(ult), [[COPY]](p0), [[COPY1]]
+ ; CHECK: [[ZEXT:%[0-9]+]](s32) = G_ZEXT [[ICMP]](s1)
+ ; CHECK: %eax = COPY [[ZEXT]](s32)
+ ; CHECK: RET 0, implicit %eax
%0(p0) = COPY %rdi
%1(p0) = COPY %rsi
%2(s1) = G_ICMP intpred(ult), %0(p0), %1
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-ext-x86-64.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-ext-x86-64.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-ext-x86-64.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-ext-x86-64.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -global-isel -run-pass=legalizer %s -o - | FileCheck %s
--- |
@@ -42,7 +43,7 @@
%r = zext i32 %val to i64
ret i64 %r
}
-
+
define void @test_anyext_i1(i8 %a) {
ret void
}
@@ -58,12 +59,11 @@
define void @test_anyext_i32(i32 %val) {
ret void
}
-
+
...
---
name: test_sext_i1
-# CHECK-LABEL: name: test_sext_i1
alignment: 4
legalized: false
regBankSelected: false
@@ -71,15 +71,16 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# CHECK: %0(s8) = COPY %dil
-# CHECK-NEXT: %1(s1) = G_TRUNC %0(s8)
-# CHECK-NEXT: %2(s64) = G_SEXT %1(s1)
-# CHECK-NEXT: %rax = COPY %2(s64)
-# CHECK-NEXT: RET 0, implicit %rax
body: |
bb.1 (%ir-block.0):
liveins: %edi
+ ; CHECK-LABEL: name: test_sext_i1
+ ; CHECK: [[COPY:%[0-9]+]](s8) = COPY %dil
+ ; CHECK: [[TRUNC:%[0-9]+]](s1) = G_TRUNC [[COPY]](s8)
+ ; CHECK: [[SEXT:%[0-9]+]](s64) = G_SEXT [[TRUNC]](s1)
+ ; CHECK: %rax = COPY [[SEXT]](s64)
+ ; CHECK: RET 0, implicit %rax
%0(s8) = COPY %dil
%1(s1) = G_TRUNC %0(s8)
%2(s64) = G_SEXT %1(s1)
@@ -89,21 +90,21 @@ body: |
...
---
name: test_sext_i8
-# CHECK-LABEL: name: test_sext_i8
alignment: 4
legalized: false
regBankSelected: false
registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
-# CHECK: %0(s8) = COPY %dil
-# CHECK-NEXT: %1(s64) = G_SEXT %0(s8)
-# CHECK-NEXT: %rax = COPY %1(s64)
-# CHECK-NEXT: RET 0, implicit %rax
body: |
bb.1 (%ir-block.0):
liveins: %edi
+ ; CHECK-LABEL: name: test_sext_i8
+ ; CHECK: [[COPY:%[0-9]+]](s8) = COPY %dil
+ ; CHECK: [[SEXT:%[0-9]+]](s64) = G_SEXT [[COPY]](s8)
+ ; CHECK: %rax = COPY [[SEXT]](s64)
+ ; CHECK: RET 0, implicit %rax
%0(s8) = COPY %dil
%1(s64) = G_SEXT %0(s8)
%rax = COPY %1(s64)
@@ -112,21 +113,21 @@ body: |
...
---
name: test_sext_i16
-# CHECK-LABEL: name: test_sext_i16
alignment: 4
legalized: false
regBankSelected: false
registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
-# CHECK: %0(s16) = COPY %di
-# CHECK-NEXT: %1(s64) = G_SEXT %0(s16)
-# CHECK-NEXT: %rax = COPY %1(s64)
-# CHECK-NEXT: RET 0, implicit %rax
body: |
bb.1 (%ir-block.0):
liveins: %edi
+ ; CHECK-LABEL: name: test_sext_i16
+ ; CHECK: [[COPY:%[0-9]+]](s16) = COPY %di
+ ; CHECK: [[SEXT:%[0-9]+]](s64) = G_SEXT [[COPY]](s16)
+ ; CHECK: %rax = COPY [[SEXT]](s64)
+ ; CHECK: RET 0, implicit %rax
%0(s16) = COPY %di
%1(s64) = G_SEXT %0(s16)
%rax = COPY %1(s64)
@@ -135,21 +136,21 @@ body: |
...
---
name: test_sext_i32
-# CHECK-LABEL: name: test_sext_i32
alignment: 4
legalized: false
regBankSelected: false
registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
-# CHECK: %0(s32) = COPY %edi
-# CHECK-NEXT: %1(s64) = G_SEXT %0(s32)
-# CHECK-NEXT: %rax = COPY %1(s64)
-# CHECK-NEXT: RET 0, implicit %rax
body: |
bb.1 (%ir-block.0):
liveins: %edi
+ ; CHECK-LABEL: name: test_sext_i32
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %edi
+ ; CHECK: [[SEXT:%[0-9]+]](s64) = G_SEXT [[COPY]](s32)
+ ; CHECK: %rax = COPY [[SEXT]](s64)
+ ; CHECK: RET 0, implicit %rax
%0(s32) = COPY %edi
%1(s64) = G_SEXT %0(s32)
%rax = COPY %1(s64)
@@ -158,7 +159,6 @@ body: |
...
---
name: test_zext_i1
-# CHECK-LABEL: name: test_zext_i1
alignment: 4
legalized: false
regBankSelected: false
@@ -166,15 +166,16 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# CHECK: %0(s8) = COPY %dil
-# CHECK-NEXT: %1(s1) = G_TRUNC %0(s8)
-# CHECK-NEXT: %2(s64) = G_ZEXT %1(s1)
-# CHECK-NEXT: %rax = COPY %2(s64)
-# CHECK-NEXT: RET 0, implicit %rax
body: |
bb.1 (%ir-block.0):
liveins: %edi
+ ; CHECK-LABEL: name: test_zext_i1
+ ; CHECK: [[COPY:%[0-9]+]](s8) = COPY %dil
+ ; CHECK: [[TRUNC:%[0-9]+]](s1) = G_TRUNC [[COPY]](s8)
+ ; CHECK: [[ZEXT:%[0-9]+]](s64) = G_ZEXT [[TRUNC]](s1)
+ ; CHECK: %rax = COPY [[ZEXT]](s64)
+ ; CHECK: RET 0, implicit %rax
%0(s8) = COPY %dil
%1(s1) = G_TRUNC %0(s8)
%2(s64) = G_ZEXT %1(s1)
@@ -184,21 +185,21 @@ body: |
...
---
name: test_zext_i8
-# CHECK-LABEL: name: test_zext_i8
alignment: 4
legalized: false
regBankSelected: false
registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
-# CHECK: %0(s8) = COPY %dil
-# CHECK-NEXT: %1(s64) = G_ZEXT %0(s8)
-# CHECK-NEXT: %rax = COPY %1(s64)
-# CHECK-NEXT: RET 0, implicit %rax
body: |
bb.1 (%ir-block.0):
liveins: %edi
+ ; CHECK-LABEL: name: test_zext_i8
+ ; CHECK: [[COPY:%[0-9]+]](s8) = COPY %dil
+ ; CHECK: [[ZEXT:%[0-9]+]](s64) = G_ZEXT [[COPY]](s8)
+ ; CHECK: %rax = COPY [[ZEXT]](s64)
+ ; CHECK: RET 0, implicit %rax
%0(s8) = COPY %dil
%1(s64) = G_ZEXT %0(s8)
%rax = COPY %1(s64)
@@ -207,21 +208,21 @@ body: |
...
---
name: test_zext_i16
-# CHECK-LABEL: name: test_zext_i16
alignment: 4
legalized: false
regBankSelected: false
registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
-# CHECK: %0(s16) = COPY %di
-# CHECK-NEXT: %1(s64) = G_ZEXT %0(s16)
-# CHECK-NEXT: %rax = COPY %1(s64)
-# CHECK-NEXT: RET 0, implicit %rax
body: |
bb.1 (%ir-block.0):
liveins: %edi
+ ; CHECK-LABEL: name: test_zext_i16
+ ; CHECK: [[COPY:%[0-9]+]](s16) = COPY %di
+ ; CHECK: [[ZEXT:%[0-9]+]](s64) = G_ZEXT [[COPY]](s16)
+ ; CHECK: %rax = COPY [[ZEXT]](s64)
+ ; CHECK: RET 0, implicit %rax
%0(s16) = COPY %di
%1(s64) = G_ZEXT %0(s16)
%rax = COPY %1(s64)
@@ -230,21 +231,21 @@ body: |
...
---
name: test_zext_i32
-# CHECK-LABEL: name: test_zext_i32
alignment: 4
legalized: false
regBankSelected: false
registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
-# CHECK: %0(s32) = COPY %edi
-# CHECK-NEXT: %1(s64) = G_ZEXT %0(s32)
-# CHECK-NEXT: %rax = COPY %1(s64)
-# CHECK-NEXT: RET 0, implicit %rax
body: |
bb.1 (%ir-block.0):
liveins: %edi
+ ; CHECK-LABEL: name: test_zext_i32
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %edi
+ ; CHECK: [[ZEXT:%[0-9]+]](s64) = G_ZEXT [[COPY]](s32)
+ ; CHECK: %rax = COPY [[ZEXT]](s64)
+ ; CHECK: RET 0, implicit %rax
%0(s32) = COPY %edi
%1(s64) = G_ZEXT %0(s32)
%rax = COPY %1(s64)
@@ -253,7 +254,6 @@ body: |
...
---
name: test_anyext_i1
-# CHECK-LABEL: name: test_anyext_i1
alignment: 4
legalized: false
regBankSelected: false
@@ -261,15 +261,16 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# CHECK: %0(s8) = COPY %dil
-# CHECK-NEXT: %1(s1) = G_TRUNC %0(s8)
-# CHECK-NEXT: %2(s64) = G_ANYEXT %1(s1)
-# CHECK-NEXT: %rax = COPY %2(s64)
-# CHECK-NEXT: RET 0, implicit %rax
body: |
bb.1 (%ir-block.0):
liveins: %edi
+ ; CHECK-LABEL: name: test_anyext_i1
+ ; CHECK: [[COPY:%[0-9]+]](s8) = COPY %dil
+ ; CHECK: [[TRUNC:%[0-9]+]](s1) = G_TRUNC [[COPY]](s8)
+ ; CHECK: [[ANYEXT:%[0-9]+]](s64) = G_ANYEXT [[TRUNC]](s1)
+ ; CHECK: %rax = COPY [[ANYEXT]](s64)
+ ; CHECK: RET 0, implicit %rax
%0(s8) = COPY %dil
%1(s1) = G_TRUNC %0(s8)
%2(s64) = G_ANYEXT %1(s1)
@@ -279,21 +280,21 @@ body: |
...
---
name: test_anyext_i8
-# CHECK-LABEL: name: test_anyext_i8
alignment: 4
legalized: false
regBankSelected: false
registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
-# CHECK: %0(s8) = COPY %dil
-# CHECK-NEXT: %1(s64) = G_ANYEXT %0(s8)
-# CHECK-NEXT: %rax = COPY %1(s64)
-# CHECK-NEXT: RET 0, implicit %rax
body: |
bb.1 (%ir-block.0):
liveins: %edi
+ ; CHECK-LABEL: name: test_anyext_i8
+ ; CHECK: [[COPY:%[0-9]+]](s8) = COPY %dil
+ ; CHECK: [[ANYEXT:%[0-9]+]](s64) = G_ANYEXT [[COPY]](s8)
+ ; CHECK: %rax = COPY [[ANYEXT]](s64)
+ ; CHECK: RET 0, implicit %rax
%0(s8) = COPY %dil
%1(s64) = G_ANYEXT %0(s8)
%rax = COPY %1(s64)
@@ -302,21 +303,21 @@ body: |
...
---
name: test_anyext_i16
-# CHECK-LABEL: name: test_anyext_i16
alignment: 4
legalized: false
regBankSelected: false
registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
-# CHECK: %0(s16) = COPY %di
-# CHECK-NEXT: %1(s64) = G_ANYEXT %0(s16)
-# CHECK-NEXT: %rax = COPY %1(s64)
-# CHECK-NEXT: RET 0, implicit %rax
body: |
bb.1 (%ir-block.0):
liveins: %edi
+ ; CHECK-LABEL: name: test_anyext_i16
+ ; CHECK: [[COPY:%[0-9]+]](s16) = COPY %di
+ ; CHECK: [[ANYEXT:%[0-9]+]](s64) = G_ANYEXT [[COPY]](s16)
+ ; CHECK: %rax = COPY [[ANYEXT]](s64)
+ ; CHECK: RET 0, implicit %rax
%0(s16) = COPY %di
%1(s64) = G_ANYEXT %0(s16)
%rax = COPY %1(s64)
@@ -325,21 +326,21 @@ body: |
...
---
name: test_anyext_i32
-# CHECK-LABEL: name: test_anyext_i32
alignment: 4
legalized: false
regBankSelected: false
registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
-# CHECK: %0(s32) = COPY %edi
-# CHECK-NEXT: %1(s64) = G_ANYEXT %0(s32)
-# CHECK-NEXT: %rax = COPY %1(s64)
-# CHECK-NEXT: RET 0, implicit %rax
body: |
bb.1 (%ir-block.0):
liveins: %edi
+ ; CHECK-LABEL: name: test_anyext_i32
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %edi
+ ; CHECK: [[ANYEXT:%[0-9]+]](s64) = G_ANYEXT [[COPY]](s32)
+ ; CHECK: %rax = COPY [[ANYEXT]](s64)
+ ; CHECK: RET 0, implicit %rax
%0(s32) = COPY %edi
%1(s64) = G_ANYEXT %0(s32)
%rax = COPY %1(s64)
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fadd-scalar.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fadd-scalar.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fadd-scalar.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fadd-scalar.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -global-isel -run-pass=legalizer %s -o - | FileCheck %s
--- |
@@ -14,7 +15,6 @@
...
---
name: test_fadd_float
-# CHECK-LABEL: name: test_fadd_float
alignment: 4
legalized: false
regBankSelected: false
@@ -26,15 +26,16 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s32) = COPY %xmm0
-# CHECK-NEXT: %1(s32) = COPY %xmm1
-# CHECK-NEXT: %2(s32) = G_FADD %0, %1
-# CHECK-NEXT: %xmm0 = COPY %2(s32)
-# CHECK-NEXT: RET 0, implicit %xmm0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; CHECK-LABEL: name: test_fadd_float
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %xmm0
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY %xmm1
+ ; CHECK: [[FADD:%[0-9]+]](s32) = G_FADD [[COPY]], [[COPY1]]
+ ; CHECK: %xmm0 = COPY [[FADD]](s32)
+ ; CHECK: RET 0, implicit %xmm0
%0(s32) = COPY %xmm0
%1(s32) = COPY %xmm1
%2(s32) = G_FADD %0, %1
@@ -44,7 +45,6 @@ body: |
...
---
name: test_fadd_double
-# CHECK-LABEL: name: test_fadd_double
alignment: 4
legalized: false
regBankSelected: false
@@ -56,15 +56,16 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s64) = COPY %xmm0
-# CHECK-NEXT: %1(s64) = COPY %xmm1
-# CHECK-NEXT: %2(s64) = G_FADD %0, %1
-# CHECK-NEXT: %xmm0 = COPY %2(s64)
-# CHECK-NEXT: RET 0, implicit %xmm0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; CHECK-LABEL: name: test_fadd_double
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %xmm0
+ ; CHECK: [[COPY1:%[0-9]+]](s64) = COPY %xmm1
+ ; CHECK: [[FADD:%[0-9]+]](s64) = G_FADD [[COPY]], [[COPY1]]
+ ; CHECK: %xmm0 = COPY [[FADD]](s64)
+ ; CHECK: RET 0, implicit %xmm0
%0(s64) = COPY %xmm0
%1(s64) = COPY %xmm1
%2(s64) = G_FADD %0, %1
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fdiv-scalar.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fdiv-scalar.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fdiv-scalar.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fdiv-scalar.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -global-isel -run-pass=legalizer %s -o - | FileCheck %s
--- |
@@ -14,7 +15,6 @@
...
---
name: test_fdiv_float
-# CHECK-LABEL: name: test_fdiv_float
alignment: 4
legalized: false
regBankSelected: false
@@ -26,15 +26,16 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s32) = COPY %xmm0
-# CHECK-NEXT: %1(s32) = COPY %xmm1
-# CHECK-NEXT: %2(s32) = G_FDIV %0, %1
-# CHECK-NEXT: %xmm0 = COPY %2(s32)
-# CHECK-NEXT: RET 0, implicit %xmm0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; CHECK-LABEL: name: test_fdiv_float
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %xmm0
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY %xmm1
+ ; CHECK: [[FDIV:%[0-9]+]](s32) = G_FDIV [[COPY]], [[COPY1]]
+ ; CHECK: %xmm0 = COPY [[FDIV]](s32)
+ ; CHECK: RET 0, implicit %xmm0
%0(s32) = COPY %xmm0
%1(s32) = COPY %xmm1
%2(s32) = G_FDIV %0, %1
@@ -44,7 +45,6 @@ body: |
...
---
name: test_fdiv_double
-# CHECK-LABEL: name: test_fdiv_double
alignment: 4
legalized: false
regBankSelected: false
@@ -56,15 +56,16 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s64) = COPY %xmm0
-# CHECK-NEXT: %1(s64) = COPY %xmm1
-# CHECK-NEXT: %2(s64) = G_FDIV %0, %1
-# CHECK-NEXT: %xmm0 = COPY %2(s64)
-# CHECK-NEXT: RET 0, implicit %xmm0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; CHECK-LABEL: name: test_fdiv_double
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %xmm0
+ ; CHECK: [[COPY1:%[0-9]+]](s64) = COPY %xmm1
+ ; CHECK: [[FDIV:%[0-9]+]](s64) = G_FDIV [[COPY]], [[COPY1]]
+ ; CHECK: %xmm0 = COPY [[FDIV]](s64)
+ ; CHECK: RET 0, implicit %xmm0
%0(s64) = COPY %xmm0
%1(s64) = COPY %xmm1
%2(s64) = G_FDIV %0, %1
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fmul-scalar.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fmul-scalar.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fmul-scalar.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fmul-scalar.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -global-isel -run-pass=legalizer %s -o - | FileCheck %s
--- |
@@ -14,7 +15,6 @@
...
---
name: test_fmul_float
-# CHECK-LABEL: name: test_fmul_float
alignment: 4
legalized: false
regBankSelected: false
@@ -26,15 +26,16 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s32) = COPY %xmm0
-# CHECK-NEXT: %1(s32) = COPY %xmm1
-# CHECK-NEXT: %2(s32) = G_FMUL %0, %1
-# CHECK-NEXT: %xmm0 = COPY %2(s32)
-# CHECK-NEXT: RET 0, implicit %xmm0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; CHECK-LABEL: name: test_fmul_float
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %xmm0
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY %xmm1
+ ; CHECK: [[FMUL:%[0-9]+]](s32) = G_FMUL [[COPY]], [[COPY1]]
+ ; CHECK: %xmm0 = COPY [[FMUL]](s32)
+ ; CHECK: RET 0, implicit %xmm0
%0(s32) = COPY %xmm0
%1(s32) = COPY %xmm1
%2(s32) = G_FMUL %0, %1
@@ -44,7 +45,6 @@ body: |
...
---
name: test_fmul_double
-# CHECK-LABEL: name: test_fmul_double
alignment: 4
legalized: false
regBankSelected: false
@@ -56,15 +56,16 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s64) = COPY %xmm0
-# CHECK-NEXT: %1(s64) = COPY %xmm1
-# CHECK-NEXT: %2(s64) = G_FMUL %0, %1
-# CHECK-NEXT: %xmm0 = COPY %2(s64)
-# CHECK-NEXT: RET 0, implicit %xmm0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; CHECK-LABEL: name: test_fmul_double
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %xmm0
+ ; CHECK: [[COPY1:%[0-9]+]](s64) = COPY %xmm1
+ ; CHECK: [[FMUL:%[0-9]+]](s64) = G_FMUL [[COPY]], [[COPY1]]
+ ; CHECK: %xmm0 = COPY [[FMUL]](s64)
+ ; CHECK: RET 0, implicit %xmm0
%0(s64) = COPY %xmm0
%1(s64) = COPY %xmm1
%2(s64) = G_FMUL %0, %1
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fpext-scalar.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fpext-scalar.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fpext-scalar.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fpext-scalar.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -global-isel -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=ALL
--- |
@@ -10,21 +11,21 @@
...
---
name: test
-# ALL-LABEL: name: test
alignment: 4
legalized: false
regBankSelected: false
registers:
- { id: 0, class: _, preferred-register: '' }
- { id: 1, class: _, preferred-register: '' }
-# ALL: %0(s32) = COPY %xmm0
-# ALL-NEXT: %1(s64) = G_FPEXT %0(s32)
-# ALL-NEXT: %xmm0 = COPY %1(s64)
-# ALL-NEXT: RET 0, implicit %xmm0
body: |
bb.1.entry:
liveins: %xmm0
+ ; ALL-LABEL: name: test
+ ; ALL: [[COPY:%[0-9]+]](s32) = COPY %xmm0
+ ; ALL: [[FPEXT:%[0-9]+]](s64) = G_FPEXT [[COPY]](s32)
+ ; ALL: %xmm0 = COPY [[FPEXT]](s64)
+ ; ALL: RET 0, implicit %xmm0
%0(s32) = COPY %xmm0
%1(s64) = G_FPEXT %0(s32)
%xmm0 = COPY %1(s64)
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fsub-scalar.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fsub-scalar.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fsub-scalar.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-fsub-scalar.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -global-isel -run-pass=legalizer %s -o - | FileCheck %s
--- |
@@ -14,7 +15,6 @@
...
---
name: test_fsub_float
-# CHECK-LABEL: name: test_fsub_float
alignment: 4
legalized: false
regBankSelected: false
@@ -26,15 +26,16 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s32) = COPY %xmm0
-# CHECK-NEXT: %1(s32) = COPY %xmm1
-# CHECK-NEXT: %2(s32) = G_FSUB %0, %1
-# CHECK-NEXT: %xmm0 = COPY %2(s32)
-# CHECK-NEXT: RET 0, implicit %xmm0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; CHECK-LABEL: name: test_fsub_float
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %xmm0
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY %xmm1
+ ; CHECK: [[FSUB:%[0-9]+]](s32) = G_FSUB [[COPY]], [[COPY1]]
+ ; CHECK: %xmm0 = COPY [[FSUB]](s32)
+ ; CHECK: RET 0, implicit %xmm0
%0(s32) = COPY %xmm0
%1(s32) = COPY %xmm1
%2(s32) = G_FSUB %0, %1
@@ -44,7 +45,6 @@ body: |
...
---
name: test_fsub_double
-# CHECK-LABEL: name: test_fsub_double
alignment: 4
legalized: false
regBankSelected: false
@@ -56,15 +56,16 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s64) = COPY %xmm0
-# CHECK-NEXT: %1(s64) = COPY %xmm1
-# CHECK-NEXT: %2(s64) = G_FSUB %0, %1
-# CHECK-NEXT: %xmm0 = COPY %2(s64)
-# CHECK-NEXT: RET 0, implicit %xmm0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; CHECK-LABEL: name: test_fsub_double
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %xmm0
+ ; CHECK: [[COPY1:%[0-9]+]](s64) = COPY %xmm1
+ ; CHECK: [[FSUB:%[0-9]+]](s64) = G_FSUB [[COPY]], [[COPY1]]
+ ; CHECK: %xmm0 = COPY [[FSUB]](s64)
+ ; CHECK: RET 0, implicit %xmm0
%0(s64) = COPY %xmm0
%1(s64) = COPY %xmm1
%2(s64) = G_FSUB %0, %1
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-gep.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-gep.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-gep.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-gep.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -global-isel -run-pass=legalizer %s -o - | FileCheck %s
--- |
@@ -23,19 +24,19 @@
...
---
name: test_gep_i8
-# CHECK-LABEL: name: test_gep_i8
legalized: false
registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# CHECK: %0(p0) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s8) = G_CONSTANT i8 20
-# CHECK-NEXT: %3(s32) = G_SEXT %1(s8)
-# CHECK-NEXT: %2(p0) = G_GEP %0, %3(s32)
-# CHECK-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_gep_i8
+ ; CHECK: [[DEF:%[0-9]+]](p0) = IMPLICIT_DEF
+ ; CHECK: [[C:%[0-9]+]](s8) = G_CONSTANT i8 20
+ ; CHECK: [[SEXT:%[0-9]+]](s32) = G_SEXT [[C]](s8)
+ ; CHECK: [[GEP:%[0-9]+]](p0) = G_GEP [[DEF]], [[SEXT]](s32)
+ ; CHECK: RET 0
%0(p0) = IMPLICIT_DEF
%1(s8) = G_CONSTANT i8 20
%2(p0) = G_GEP %0, %1(s8)
@@ -43,19 +44,19 @@ body: |
...
---
name: test_gep_i16
-# CHECK-LABEL: name: test_gep_i16
legalized: false
registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# CHECK: %0(p0) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s16) = G_CONSTANT i16 20
-# CHECK-NEXT: %3(s32) = G_SEXT %1(s16)
-# CHECK-NEXT: %2(p0) = G_GEP %0, %3(s32)
-# CHECK-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_gep_i16
+ ; CHECK: [[DEF:%[0-9]+]](p0) = IMPLICIT_DEF
+ ; CHECK: [[C:%[0-9]+]](s16) = G_CONSTANT i16 20
+ ; CHECK: [[SEXT:%[0-9]+]](s32) = G_SEXT [[C]](s16)
+ ; CHECK: [[GEP:%[0-9]+]](p0) = G_GEP [[DEF]], [[SEXT]](s32)
+ ; CHECK: RET 0
%0(p0) = IMPLICIT_DEF
%1(s16) = G_CONSTANT i16 20
%2(p0) = G_GEP %0, %1(s16)
@@ -63,18 +64,18 @@ body: |
...
---
name: test_gep_i32
-# CHECK-LABEL: name: test_gep_i32
legalized: false
registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# CHECK: %0(p0) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s32) = G_CONSTANT i32 20
-# CHECK-NEXT: %2(p0) = G_GEP %0, %1(s32)
-# CHECK-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_gep_i32
+ ; CHECK: [[DEF:%[0-9]+]](p0) = IMPLICIT_DEF
+ ; CHECK: [[C:%[0-9]+]](s32) = G_CONSTANT i32 20
+ ; CHECK: [[GEP:%[0-9]+]](p0) = G_GEP [[DEF]], [[C]](s32)
+ ; CHECK: RET 0
%0(p0) = IMPLICIT_DEF
%1(s32) = G_CONSTANT i32 20
%2(p0) = G_GEP %0, %1(s32)
@@ -82,18 +83,18 @@ body: |
...
---
name: test_gep_i64
-# CHECK-LABEL: name: test_gep_i64
legalized: false
registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# CHECK: %0(p0) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s64) = G_CONSTANT i64 20
-# CHECK-NEXT: %2(p0) = G_GEP %0, %1(s64)
-# CHECK-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_gep_i64
+ ; CHECK: [[DEF:%[0-9]+]](p0) = IMPLICIT_DEF
+ ; CHECK: [[C:%[0-9]+]](s64) = G_CONSTANT i64 20
+ ; CHECK: [[GEP:%[0-9]+]](p0) = G_GEP [[DEF]], [[C]](s64)
+ ; CHECK: RET 0
%0(p0) = IMPLICIT_DEF
%1(s64) = G_CONSTANT i64 20
%2(p0) = G_GEP %0, %1(s64)
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-insert-vec512.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-insert-vec512.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-insert-vec512.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-insert-vec512.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -mattr=+avx512f -global-isel -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=ALL
--- |
@@ -11,7 +12,6 @@
...
---
name: test_insert_128
-# ALL-LABEL: name: test_insert_128
alignment: 4
legalized: false
regBankSelected: false
@@ -19,15 +19,16 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# ALL: %0(<16 x s32>) = COPY %zmm0
-# ALL-NEXT: %1(<4 x s32>) = COPY %xmm1
-# ALL-NEXT: %2(<16 x s32>) = G_INSERT %0, %1(<4 x s32>), 0
-# ALL-NEXT: %zmm0 = COPY %2(<16 x s32>)
-# ALL-NEXT: RET 0, implicit %ymm0
body: |
bb.1 (%ir-block.0):
liveins: %zmm0, %ymm1
+ ; ALL-LABEL: name: test_insert_128
+ ; ALL: [[COPY:%[0-9]+]](<16 x s32>) = COPY %zmm0
+ ; ALL: [[COPY1:%[0-9]+]](<4 x s32>) = COPY %xmm1
+ ; ALL: [[INSERT:%[0-9]+]](<16 x s32>) = G_INSERT [[COPY]], [[COPY1]](<4 x s32>), 0
+ ; ALL: %zmm0 = COPY [[INSERT]](<16 x s32>)
+ ; ALL: RET 0, implicit %ymm0
%0(<16 x s32>) = COPY %zmm0
%1(<4 x s32>) = COPY %xmm1
%2(<16 x s32>) = G_INSERT %0(<16 x s32>), %1(<4 x s32>), 0
@@ -37,7 +38,6 @@ body: |
...
---
name: test_insert_256
-# ALL-LABEL: name: test_insert_256
alignment: 4
legalized: false
regBankSelected: false
@@ -45,15 +45,16 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# ALL: %0(<16 x s32>) = COPY %zmm0
-# ALL-NEXT: %1(<8 x s32>) = COPY %ymm1
-# ALL-NEXT: %2(<16 x s32>) = G_INSERT %0, %1(<8 x s32>), 0
-# ALL-NEXT: %zmm0 = COPY %2(<16 x s32>)
-# ALL-NEXT: RET 0, implicit %ymm0
body: |
bb.1 (%ir-block.0):
liveins: %zmm0, %ymm1
+ ; ALL-LABEL: name: test_insert_256
+ ; ALL: [[COPY:%[0-9]+]](<16 x s32>) = COPY %zmm0
+ ; ALL: [[COPY1:%[0-9]+]](<8 x s32>) = COPY %ymm1
+ ; ALL: [[INSERT:%[0-9]+]](<16 x s32>) = G_INSERT [[COPY]], [[COPY1]](<8 x s32>), 0
+ ; ALL: %zmm0 = COPY [[INSERT]](<16 x s32>)
+ ; ALL: RET 0, implicit %ymm0
%0(<16 x s32>) = COPY %zmm0
%1(<8 x s32>) = COPY %ymm1
%2(<16 x s32>) = G_INSERT %0(<16 x s32>), %1(<8 x s32>), 0
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-or-scalar.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-or-scalar.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-or-scalar.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-or-scalar.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -global-isel -run-pass=legalizer %s -o - | FileCheck %s
--- |
@@ -29,7 +30,6 @@
...
---
name: test_or_i1
-# CHECK-LABEL: name: test_or_i1
alignment: 4
legalized: false
regBankSelected: false
@@ -37,15 +37,16 @@ registers:
- { id: 0, class: _, preferred-register: '' }
- { id: 1, class: _, preferred-register: '' }
- { id: 2, class: _, preferred-register: '' }
-# CHECK: %0(s32) = COPY %edx
-# CHECK-NEXT: %3(s8) = G_TRUNC %0(s32)
-# CHECK-NEXT: %4(s8) = G_TRUNC %0(s32)
-# CHECK-NEXT: %5(s8) = G_OR %3, %4
-# CHECK-NEXT: %2(s1) = G_TRUNC %5(s8)
-# CHECK-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_or_i1
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %edx
+ ; CHECK: [[TRUNC:%[0-9]+]](s8) = G_TRUNC [[COPY]](s32)
+ ; CHECK: [[TRUNC1:%[0-9]+]](s8) = G_TRUNC [[COPY]](s32)
+ ; CHECK: [[OR:%[0-9]+]](s8) = G_OR [[TRUNC]], [[TRUNC1]]
+ ; CHECK: [[TRUNC2:%[0-9]+]](s1) = G_TRUNC [[OR]](s8)
+ ; CHECK: RET 0
%0(s32) = COPY %edx
%1(s1) = G_TRUNC %0(s32)
%2(s1) = G_OR %1, %1
@@ -53,7 +54,6 @@ body: |
...
---
name: test_or_i8
-# CHECK-LABEL: name: test_or_i8
alignment: 4
legalized: false
regBankSelected: false
@@ -64,12 +64,13 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s8) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s8) = G_OR %0, %0
-# CHECK-NEXT: %al = COPY %1(s8)
-# CHECK-NEXT: RET 0, implicit %al
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_or_i8
+ ; CHECK: [[DEF:%[0-9]+]](s8) = IMPLICIT_DEF
+ ; CHECK: [[OR:%[0-9]+]](s8) = G_OR [[DEF]], [[DEF]]
+ ; CHECK: %al = COPY [[OR]](s8)
+ ; CHECK: RET 0, implicit %al
%0(s8) = IMPLICIT_DEF
%1(s8) = G_OR %0, %0
%al = COPY %1(s8)
@@ -78,7 +79,6 @@ body: |
...
---
name: test_or_i16
-# CHECK-LABEL: name: test_or_i16
alignment: 4
legalized: false
regBankSelected: false
@@ -89,12 +89,13 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s16) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s16) = G_OR %0, %0
-# CHECK-NEXT: %ax = COPY %1(s16)
-# CHECK-NEXT: RET 0, implicit %ax
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_or_i16
+ ; CHECK: [[DEF:%[0-9]+]](s16) = IMPLICIT_DEF
+ ; CHECK: [[OR:%[0-9]+]](s16) = G_OR [[DEF]], [[DEF]]
+ ; CHECK: %ax = COPY [[OR]](s16)
+ ; CHECK: RET 0, implicit %ax
%0(s16) = IMPLICIT_DEF
%1(s16) = G_OR %0, %0
%ax = COPY %1(s16)
@@ -103,7 +104,6 @@ body: |
...
---
name: test_or_i32
-# CHECK-LABEL: name: test_or_i32
alignment: 4
legalized: false
regBankSelected: false
@@ -114,12 +114,13 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s32) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s32) = G_OR %0, %0
-# CHECK-NEXT: %eax = COPY %1(s32)
-# CHECK-NEXT: RET 0, implicit %eax
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_or_i32
+ ; CHECK: [[DEF:%[0-9]+]](s32) = IMPLICIT_DEF
+ ; CHECK: [[OR:%[0-9]+]](s32) = G_OR [[DEF]], [[DEF]]
+ ; CHECK: %eax = COPY [[OR]](s32)
+ ; CHECK: RET 0, implicit %eax
%0(s32) = IMPLICIT_DEF
%1(s32) = G_OR %0, %0
%eax = COPY %1(s32)
@@ -128,7 +129,6 @@ body: |
...
---
name: test_or_i64
-# CHECK-LABEL: name: test_or_i64
alignment: 4
legalized: false
regBankSelected: false
@@ -139,12 +139,13 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s64) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s64) = G_OR %0, %0
-# CHECK-NEXT: %rax = COPY %1(s64)
-# CHECK-NEXT: RET 0, implicit %rax
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_or_i64
+ ; CHECK: [[DEF:%[0-9]+]](s64) = IMPLICIT_DEF
+ ; CHECK: [[OR:%[0-9]+]](s64) = G_OR [[DEF]], [[DEF]]
+ ; CHECK: %rax = COPY [[OR]](s64)
+ ; CHECK: RET 0, implicit %rax
%0(s64) = IMPLICIT_DEF
%1(s64) = G_OR %0, %0
%rax = COPY %1(s64)
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-phi.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-phi.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-phi.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-phi.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -global-isel -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=ALL
--- |
@@ -117,7 +118,6 @@
...
---
name: test_i1
-# ALL-LABEL: name: test_i1
alignment: 4
legalized: false
regBankSelected: false
@@ -134,32 +134,35 @@ liveins:
fixedStack:
stack:
constants:
-# ALL: bb.0.entry:
-# ALL-NEXT: successors: %bb.1.cond.true(0x40000000), %bb.2.cond.false(0x40000000)
-# ALL-NEXT: liveins: %edi, %edx, %esi
-
-# ALL: %0(s32) = COPY %edi
-# ALL-NEXT: %1(s1) = COPY %esi
-# ALL-NEXT: %2(s1) = COPY %edx
-# ALL-NEXT: %3(s32) = G_CONSTANT i32 0
-# ALL-NEXT: %4(s1) = G_ICMP intpred(sgt), %0(s32), %3
-# ALL-NEXT: G_BRCOND %4(s1), %bb.1.cond.true
-# ALL-NEXT: G_BR %bb.2.cond.false
-
-# ALL-LABEL: bb.1.cond.true:
-# ALL: %8(s8) = G_ANYEXT %1(s1)
-# ALL-NEXT: G_BR %bb.3.cond.end
-
-# ALL-LABEL: bb.2.cond.false:
-# ALL: %9(s8) = G_ANYEXT %2(s1)
-
-# ALL-LABEL: bb.3.cond.end:
-# ALL-NEXT: %7(s8) = G_PHI %8(s8), %bb.1.cond.true, %9(s8), %bb.2.cond.false
-# ALL-NEXT: %5(s1) = G_TRUNC %7(s8)
-# ALL-NEXT: %6(s8) = G_ZEXT %5(s1)
-# ALL-NEXT: %al = COPY %6(s8)
-# ALL-NEXT: RET 0, implicit %al
+
+
+
+
body: |
+ ; ALL-LABEL: name: test_i1
+ ; ALL: bb.0.entry:
+ ; ALL: successors: %bb.1.cond.true(0x40000000), %bb.2.cond.false(0x40000000)
+ ; ALL: liveins: %edi, %edx, %esi
+ ; ALL: [[COPY:%[0-9]+]](s32) = COPY %edi
+ ; ALL: [[COPY1:%[0-9]+]](s1) = COPY %esi
+ ; ALL: [[COPY2:%[0-9]+]](s1) = COPY %edx
+ ; ALL: [[C:%[0-9]+]](s32) = G_CONSTANT i32 0
+ ; ALL: [[ICMP:%[0-9]+]](s1) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]
+ ; ALL: G_BRCOND [[ICMP]](s1), %bb.1.cond.true
+ ; ALL: G_BR %bb.2.cond.false
+ ; ALL: bb.1.cond.true:
+ ; ALL: successors: %bb.3.cond.end(0x80000000)
+ ; ALL: [[ANYEXT:%[0-9]+]](s8) = G_ANYEXT [[COPY1]](s1)
+ ; ALL: G_BR %bb.3.cond.end
+ ; ALL: bb.2.cond.false:
+ ; ALL: successors: %bb.3.cond.end(0x80000000)
+ ; ALL: [[ANYEXT1:%[0-9]+]](s8) = G_ANYEXT [[COPY2]](s1)
+ ; ALL: bb.3.cond.end:
+ ; ALL: [[PHI:%[0-9]+]](s8) = G_PHI [[ANYEXT]](s8), %bb.1.cond.true, [[ANYEXT1]](s8), %bb.2.cond.false
+ ; ALL: [[TRUNC:%[0-9]+]](s1) = G_TRUNC [[PHI]](s8)
+ ; ALL: [[ZEXT:%[0-9]+]](s8) = G_ZEXT [[TRUNC]](s1)
+ ; ALL: %al = COPY [[ZEXT]](s8)
+ ; ALL: RET 0, implicit %al
bb.1.entry:
successors: %bb.2.cond.true(0x40000000), %bb.3.cond.false(0x40000000)
liveins: %edi, %edx, %esi
@@ -190,7 +193,6 @@ body: |
...
---
name: test_i8
-# ALL-LABEL: name: test_i8
alignment: 4
legalized: false
regBankSelected: false
@@ -206,28 +208,30 @@ liveins:
fixedStack:
stack:
constants:
-# ALL: bb.0.entry:
-# ALL-NEXT: successors: %bb.1.cond.true(0x40000000), %bb.2.cond.false(0x40000000)
-# ALL-NEXT: liveins: %edi, %edx, %esi
-# ALL: %0(s32) = COPY %edi
-# ALL-NEXT: %1(s8) = COPY %sil
-# ALL-NEXT: %2(s8) = COPY %edx
-# ALL-NEXT: %3(s32) = G_CONSTANT i32 0
-# ALL-NEXT: %4(s1) = G_ICMP intpred(sgt), %0(s32), %3
-# ALL-NEXT: G_BRCOND %4(s1), %bb.1.cond.true
-# ALL-NEXT: G_BR %bb.2.cond.false
-
-# ALL-LABEL: bb.1.cond.true:
-# ALL: G_BR %bb.3.cond.end
-
-# ALL-LABEL: bb.2.cond.false:
-# ALL-NEXT: successors: %bb.3.cond.end(0x80000000)
-
-# ALL-LABEL: bb.3.cond.end:
-# ALL-NEXT: %5(s8) = G_PHI %1(s8), %bb.1.cond.true, %2(s8), %bb.2.cond.false
-# ALL-NEXT: %al = COPY %5(s8)
-# ALL-NEXT: RET 0, implicit %al
+
+
+
body: |
+ ; ALL-LABEL: name: test_i8
+ ; ALL: bb.0.entry:
+ ; ALL: successors: %bb.1.cond.true(0x40000000), %bb.2.cond.false(0x40000000)
+ ; ALL: liveins: %edi, %edx, %esi
+ ; ALL: [[COPY:%[0-9]+]](s32) = COPY %edi
+ ; ALL: [[COPY1:%[0-9]+]](s8) = COPY %sil
+ ; ALL: [[COPY2:%[0-9]+]](s8) = COPY %edx
+ ; ALL: [[C:%[0-9]+]](s32) = G_CONSTANT i32 0
+ ; ALL: [[ICMP:%[0-9]+]](s1) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]
+ ; ALL: G_BRCOND [[ICMP]](s1), %bb.1.cond.true
+ ; ALL: G_BR %bb.2.cond.false
+ ; ALL: bb.1.cond.true:
+ ; ALL: successors: %bb.3.cond.end(0x80000000)
+ ; ALL: G_BR %bb.3.cond.end
+ ; ALL: bb.2.cond.false:
+ ; ALL: successors: %bb.3.cond.end(0x80000000)
+ ; ALL: bb.3.cond.end:
+ ; ALL: [[PHI:%[0-9]+]](s8) = G_PHI [[COPY1]](s8), %bb.1.cond.true, [[COPY2]](s8), %bb.2.cond.false
+ ; ALL: %al = COPY [[PHI]](s8)
+ ; ALL: RET 0, implicit %al
bb.1.entry:
successors: %bb.2.cond.true(0x40000000), %bb.3.cond.false(0x40000000)
liveins: %edi, %edx, %esi
@@ -257,7 +261,6 @@ body: |
...
---
name: test_i16
-# ALL-LABEL: name: test_i16
alignment: 4
legalized: false
regBankSelected: false
@@ -273,28 +276,30 @@ liveins:
fixedStack:
stack:
constants:
-# ALL: bb.0.entry:
-# ALL-NEXT: successors: %bb.1.cond.true(0x40000000), %bb.2.cond.false(0x40000000)
-# ALL-NEXT: liveins: %edi, %edx, %esi
-# ALL: %0(s32) = COPY %edi
-# ALL-NEXT: %1(s16) = COPY %si
-# ALL-NEXT: %2(s16) = COPY %edx
-# ALL-NEXT: %3(s32) = G_CONSTANT i32 0
-# ALL-NEXT: %4(s1) = G_ICMP intpred(sgt), %0(s32), %3
-# ALL-NEXT: G_BRCOND %4(s1), %bb.1.cond.true
-# ALL-NEXT: G_BR %bb.2.cond.false
-
-# ALL-LABEL: bb.1.cond.true:
-# ALL: G_BR %bb.3.cond.end
-
-# ALL-LABEL: bb.2.cond.false:
-# ALL-NEXT: successors: %bb.3.cond.end(0x80000000)
-
-# ALL-LABEL: bb.3.cond.end:
-# ALL-NEXT: %5(s16) = G_PHI %1(s16), %bb.1.cond.true, %2(s16), %bb.2.cond.false
-# ALL-NEXT: %ax = COPY %5(s16)
-# ALL-NEXT: RET 0, implicit %ax
+
+
+
body: |
+ ; ALL-LABEL: name: test_i16
+ ; ALL: bb.0.entry:
+ ; ALL: successors: %bb.1.cond.true(0x40000000), %bb.2.cond.false(0x40000000)
+ ; ALL: liveins: %edi, %edx, %esi
+ ; ALL: [[COPY:%[0-9]+]](s32) = COPY %edi
+ ; ALL: [[COPY1:%[0-9]+]](s16) = COPY %si
+ ; ALL: [[COPY2:%[0-9]+]](s16) = COPY %edx
+ ; ALL: [[C:%[0-9]+]](s32) = G_CONSTANT i32 0
+ ; ALL: [[ICMP:%[0-9]+]](s1) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]
+ ; ALL: G_BRCOND [[ICMP]](s1), %bb.1.cond.true
+ ; ALL: G_BR %bb.2.cond.false
+ ; ALL: bb.1.cond.true:
+ ; ALL: successors: %bb.3.cond.end(0x80000000)
+ ; ALL: G_BR %bb.3.cond.end
+ ; ALL: bb.2.cond.false:
+ ; ALL: successors: %bb.3.cond.end(0x80000000)
+ ; ALL: bb.3.cond.end:
+ ; ALL: [[PHI:%[0-9]+]](s16) = G_PHI [[COPY1]](s16), %bb.1.cond.true, [[COPY2]](s16), %bb.2.cond.false
+ ; ALL: %ax = COPY [[PHI]](s16)
+ ; ALL: RET 0, implicit %ax
bb.1.entry:
successors: %bb.2.cond.true(0x40000000), %bb.3.cond.false(0x40000000)
liveins: %edi, %edx, %esi
@@ -324,7 +329,6 @@ body: |
...
---
name: test_i32
-# ALL-LABEL: name: test_i32
alignment: 4
legalized: false
regBankSelected: false
@@ -340,28 +344,30 @@ liveins:
fixedStack:
stack:
constants:
-# ALL: bb.0.entry:
-# ALL-NEXT: successors: %bb.1.cond.true(0x40000000), %bb.2.cond.false(0x40000000)
-# ALL-NEXT: liveins: %edi, %edx, %esi
-# ALL: %0(s32) = COPY %edi
-# ALL-NEXT: %1(s32) = COPY %esi
-# ALL-NEXT: %2(s32) = COPY %edx
-# ALL-NEXT: %3(s32) = G_CONSTANT i32 0
-# ALL-NEXT: %4(s1) = G_ICMP intpred(sgt), %0(s32), %3
-# ALL-NEXT: G_BRCOND %4(s1), %bb.1.cond.true
-# ALL-NEXT: G_BR %bb.2.cond.false
-
-# ALL-LABEL: bb.1.cond.true:
-# ALL: G_BR %bb.3.cond.end
-
-# ALL-LABEL: bb.2.cond.false:
-# ALL-NEXT: successors: %bb.3.cond.end(0x80000000)
-
-# ALL-LABEL: bb.3.cond.end:
-# ALL-NEXT: %5(s32) = G_PHI %1(s32), %bb.1.cond.true, %2(s32), %bb.2.cond.false
-# ALL-NEXT: %eax = COPY %5(s32)
-# ALL-NEXT: RET 0, implicit %eax
+
+
+
body: |
+ ; ALL-LABEL: name: test_i32
+ ; ALL: bb.0.entry:
+ ; ALL: successors: %bb.1.cond.true(0x40000000), %bb.2.cond.false(0x40000000)
+ ; ALL: liveins: %edi, %edx, %esi
+ ; ALL: [[COPY:%[0-9]+]](s32) = COPY %edi
+ ; ALL: [[COPY1:%[0-9]+]](s32) = COPY %esi
+ ; ALL: [[COPY2:%[0-9]+]](s32) = COPY %edx
+ ; ALL: [[C:%[0-9]+]](s32) = G_CONSTANT i32 0
+ ; ALL: [[ICMP:%[0-9]+]](s1) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]
+ ; ALL: G_BRCOND [[ICMP]](s1), %bb.1.cond.true
+ ; ALL: G_BR %bb.2.cond.false
+ ; ALL: bb.1.cond.true:
+ ; ALL: successors: %bb.3.cond.end(0x80000000)
+ ; ALL: G_BR %bb.3.cond.end
+ ; ALL: bb.2.cond.false:
+ ; ALL: successors: %bb.3.cond.end(0x80000000)
+ ; ALL: bb.3.cond.end:
+ ; ALL: [[PHI:%[0-9]+]](s32) = G_PHI [[COPY1]](s32), %bb.1.cond.true, [[COPY2]](s32), %bb.2.cond.false
+ ; ALL: %eax = COPY [[PHI]](s32)
+ ; ALL: RET 0, implicit %eax
bb.1.entry:
successors: %bb.2.cond.true(0x40000000), %bb.3.cond.false(0x40000000)
liveins: %edi, %edx, %esi
@@ -391,7 +397,6 @@ body: |
...
---
name: test_i64
-# ALL-LABEL: name: test_i64
alignment: 4
legalized: false
regBankSelected: false
@@ -407,28 +412,30 @@ liveins:
fixedStack:
stack:
constants:
-# ALL: bb.0.entry:
-# ALL-NEXT: successors: %bb.1.cond.true(0x40000000), %bb.2.cond.false(0x40000000)
-# ALL-NEXT: liveins: %edi, %rdx, %rsi
-# ALL: %0(s32) = COPY %edi
-# ALL-NEXT: %1(s64) = COPY %rsi
-# ALL-NEXT: %2(s64) = COPY %rdx
-# ALL-NEXT: %3(s32) = G_CONSTANT i32 0
-# ALL-NEXT: %4(s1) = G_ICMP intpred(sgt), %0(s32), %3
-# ALL-NEXT: G_BRCOND %4(s1), %bb.1.cond.true
-# ALL-NEXT: G_BR %bb.2.cond.false
-
-# ALL-LABEL: bb.1.cond.true:
-# ALL: G_BR %bb.3.cond.end
-
-# ALL-LABEL: bb.2.cond.false:
-# ALL-NEXT: successors: %bb.3.cond.end(0x80000000)
-
-# ALL-LABEL: bb.3.cond.end:
-# ALL-NEXT: %5(s64) = G_PHI %1(s64), %bb.1.cond.true, %2(s64), %bb.2.cond.false
-# ALL-NEXT: %rax = COPY %5(s64)
-# ALL-NEXT: RET 0, implicit %rax
+
+
+
body: |
+ ; ALL-LABEL: name: test_i64
+ ; ALL: bb.0.entry:
+ ; ALL: successors: %bb.1.cond.true(0x40000000), %bb.2.cond.false(0x40000000)
+ ; ALL: liveins: %edi, %rdx, %rsi
+ ; ALL: [[COPY:%[0-9]+]](s32) = COPY %edi
+ ; ALL: [[COPY1:%[0-9]+]](s64) = COPY %rsi
+ ; ALL: [[COPY2:%[0-9]+]](s64) = COPY %rdx
+ ; ALL: [[C:%[0-9]+]](s32) = G_CONSTANT i32 0
+ ; ALL: [[ICMP:%[0-9]+]](s1) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]
+ ; ALL: G_BRCOND [[ICMP]](s1), %bb.1.cond.true
+ ; ALL: G_BR %bb.2.cond.false
+ ; ALL: bb.1.cond.true:
+ ; ALL: successors: %bb.3.cond.end(0x80000000)
+ ; ALL: G_BR %bb.3.cond.end
+ ; ALL: bb.2.cond.false:
+ ; ALL: successors: %bb.3.cond.end(0x80000000)
+ ; ALL: bb.3.cond.end:
+ ; ALL: [[PHI:%[0-9]+]](s64) = G_PHI [[COPY1]](s64), %bb.1.cond.true, [[COPY2]](s64), %bb.2.cond.false
+ ; ALL: %rax = COPY [[PHI]](s64)
+ ; ALL: RET 0, implicit %rax
bb.1.entry:
successors: %bb.2.cond.true(0x40000000), %bb.3.cond.false(0x40000000)
liveins: %edi, %rdx, %rsi
@@ -458,7 +465,6 @@ body: |
...
---
name: test_float
-# ALL-LABEL: name: test_float
alignment: 4
legalized: false
regBankSelected: false
@@ -474,28 +480,30 @@ liveins:
fixedStack:
stack:
constants:
-# ALL: bb.0.entry:
-# ALL-NEXT: successors: %bb.1.cond.true(0x40000000), %bb.2.cond.false(0x40000000)
-# ALL-NEXT: liveins: %edi, %xmm0, %xmm1
-# ALL: %0(s32) = COPY %edi
-# ALL-NEXT: %1(s32) = COPY %xmm0
-# ALL-NEXT: %2(s32) = COPY %xmm1
-# ALL-NEXT: %3(s32) = G_CONSTANT i32 0
-# ALL-NEXT: %4(s1) = G_ICMP intpred(sgt), %0(s32), %3
-# ALL-NEXT: G_BRCOND %4(s1), %bb.1.cond.true
-# ALL-NEXT: G_BR %bb.2.cond.false
-
-# ALL-LABEL: bb.1.cond.true:
-# ALL: G_BR %bb.3.cond.end
-
-# ALL-LABEL: bb.2.cond.false:
-# ALL-NEXT: successors: %bb.3.cond.end(0x80000000)
-
-# ALL-LABEL: bb.3.cond.end:
-# ALL-NEXT: %5(s32) = G_PHI %1(s32), %bb.1.cond.true, %2(s32), %bb.2.cond.false
-# ALL-NEXT: %xmm0 = COPY %5(s32)
-# ALL-NEXT: RET 0, implicit %xmm0
+
+
+
body: |
+ ; ALL-LABEL: name: test_float
+ ; ALL: bb.0.entry:
+ ; ALL: successors: %bb.1.cond.true(0x40000000), %bb.2.cond.false(0x40000000)
+ ; ALL: liveins: %edi, %xmm0, %xmm1
+ ; ALL: [[COPY:%[0-9]+]](s32) = COPY %edi
+ ; ALL: [[COPY1:%[0-9]+]](s32) = COPY %xmm0
+ ; ALL: [[COPY2:%[0-9]+]](s32) = COPY %xmm1
+ ; ALL: [[C:%[0-9]+]](s32) = G_CONSTANT i32 0
+ ; ALL: [[ICMP:%[0-9]+]](s1) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]
+ ; ALL: G_BRCOND [[ICMP]](s1), %bb.1.cond.true
+ ; ALL: G_BR %bb.2.cond.false
+ ; ALL: bb.1.cond.true:
+ ; ALL: successors: %bb.3.cond.end(0x80000000)
+ ; ALL: G_BR %bb.3.cond.end
+ ; ALL: bb.2.cond.false:
+ ; ALL: successors: %bb.3.cond.end(0x80000000)
+ ; ALL: bb.3.cond.end:
+ ; ALL: [[PHI:%[0-9]+]](s32) = G_PHI [[COPY1]](s32), %bb.1.cond.true, [[COPY2]](s32), %bb.2.cond.false
+ ; ALL: %xmm0 = COPY [[PHI]](s32)
+ ; ALL: RET 0, implicit %xmm0
bb.1.entry:
successors: %bb.2.cond.true(0x40000000), %bb.3.cond.false(0x40000000)
liveins: %edi, %xmm0, %xmm1
@@ -525,7 +533,6 @@ body: |
...
---
name: test_double
-# ALL-LABEL: name: test_double
alignment: 4
legalized: false
regBankSelected: false
@@ -541,28 +548,30 @@ liveins:
fixedStack:
stack:
constants:
-# ALL: bb.0.entry:
-# ALL-NEXT: successors: %bb.1.cond.true(0x40000000), %bb.2.cond.false(0x40000000)
-# ALL-NEXT: liveins: %edi, %xmm0, %xmm1
-# ALL: %0(s32) = COPY %edi
-# ALL-NEXT: %1(s64) = COPY %xmm0
-# ALL-NEXT: %2(s64) = COPY %xmm1
-# ALL-NEXT: %3(s32) = G_CONSTANT i32 0
-# ALL-NEXT: %4(s1) = G_ICMP intpred(sgt), %0(s32), %3
-# ALL-NEXT: G_BRCOND %4(s1), %bb.1.cond.true
-# ALL-NEXT: G_BR %bb.2.cond.false
-
-# ALL-LABEL: bb.1.cond.true:
-# ALL: G_BR %bb.3.cond.end
-
-# ALL-LABEL: bb.2.cond.false:
-# ALL-NEXT: successors: %bb.3.cond.end(0x80000000)
-
-# ALL-LABEL: bb.3.cond.end:
-# ALL-NEXT: %5(s64) = G_PHI %1(s64), %bb.1.cond.true, %2(s64), %bb.2.cond.false
-# ALL-NEXT: %xmm0 = COPY %5(s64)
-# ALL-NEXT: RET 0, implicit %xmm0
+
+
+
body: |
+ ; ALL-LABEL: name: test_double
+ ; ALL: bb.0.entry:
+ ; ALL: successors: %bb.1.cond.true(0x40000000), %bb.2.cond.false(0x40000000)
+ ; ALL: liveins: %edi, %xmm0, %xmm1
+ ; ALL: [[COPY:%[0-9]+]](s32) = COPY %edi
+ ; ALL: [[COPY1:%[0-9]+]](s64) = COPY %xmm0
+ ; ALL: [[COPY2:%[0-9]+]](s64) = COPY %xmm1
+ ; ALL: [[C:%[0-9]+]](s32) = G_CONSTANT i32 0
+ ; ALL: [[ICMP:%[0-9]+]](s1) = G_ICMP intpred(sgt), [[COPY]](s32), [[C]]
+ ; ALL: G_BRCOND [[ICMP]](s1), %bb.1.cond.true
+ ; ALL: G_BR %bb.2.cond.false
+ ; ALL: bb.1.cond.true:
+ ; ALL: successors: %bb.3.cond.end(0x80000000)
+ ; ALL: G_BR %bb.3.cond.end
+ ; ALL: bb.2.cond.false:
+ ; ALL: successors: %bb.3.cond.end(0x80000000)
+ ; ALL: bb.3.cond.end:
+ ; ALL: [[PHI:%[0-9]+]](s64) = G_PHI [[COPY1]](s64), %bb.1.cond.true, [[COPY2]](s64), %bb.2.cond.false
+ ; ALL: %xmm0 = COPY [[PHI]](s64)
+ ; ALL: RET 0, implicit %xmm0
bb.1.entry:
successors: %bb.2.cond.true(0x40000000), %bb.3.cond.false(0x40000000)
liveins: %edi, %xmm0, %xmm1
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub-v128.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub-v128.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub-v128.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub-v128.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -mattr=+sse2 -global-isel -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=ALL --check-prefix=SSE2
--- |
@@ -23,7 +24,6 @@
...
---
name: test_sub_v16i8
-# ALL-LABEL: name: test_sub_v16i8
alignment: 4
legalized: false
regBankSelected: false
@@ -31,14 +31,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# ALL: %0(<16 x s8>) = IMPLICIT_DEF
-# ALL-NEXT: %1(<16 x s8>) = IMPLICIT_DEF
-# ALL-NEXT: %2(<16 x s8>) = G_SUB %0, %1
-# ALL-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; ALL-LABEL: name: test_sub_v16i8
+ ; ALL: [[DEF:%[0-9]+]](<16 x s8>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<16 x s8>) = IMPLICIT_DEF
+ ; ALL: [[SUB:%[0-9]+]](<16 x s8>) = G_SUB [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<16 x s8>) = IMPLICIT_DEF
%1(<16 x s8>) = IMPLICIT_DEF
%2(<16 x s8>) = G_SUB %0, %1
@@ -47,7 +48,6 @@ body: |
...
---
name: test_sub_v8i16
-# ALL-LABEL: name: test_sub_v8i16
alignment: 4
legalized: false
regBankSelected: false
@@ -55,14 +55,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# ALL: %0(<8 x s16>) = IMPLICIT_DEF
-# ALL-NEXT: %1(<8 x s16>) = IMPLICIT_DEF
-# ALL-NEXT: %2(<8 x s16>) = G_SUB %0, %1
-# ALL-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; ALL-LABEL: name: test_sub_v8i16
+ ; ALL: [[DEF:%[0-9]+]](<8 x s16>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<8 x s16>) = IMPLICIT_DEF
+ ; ALL: [[SUB:%[0-9]+]](<8 x s16>) = G_SUB [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<8 x s16>) = IMPLICIT_DEF
%1(<8 x s16>) = IMPLICIT_DEF
%2(<8 x s16>) = G_SUB %0, %1
@@ -71,7 +72,6 @@ body: |
...
---
name: test_sub_v4i32
-# ALL-LABEL: name: test_sub_v4i32
alignment: 4
legalized: false
regBankSelected: false
@@ -79,14 +79,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# ALL: %0(<4 x s32>) = IMPLICIT_DEF
-# ALL-NEXT: %1(<4 x s32>) = IMPLICIT_DEF
-# ALL-NEXT: %2(<4 x s32>) = G_SUB %0, %1
-# ALL-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; ALL-LABEL: name: test_sub_v4i32
+ ; ALL: [[DEF:%[0-9]+]](<4 x s32>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<4 x s32>) = IMPLICIT_DEF
+ ; ALL: [[SUB:%[0-9]+]](<4 x s32>) = G_SUB [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<4 x s32>) = IMPLICIT_DEF
%1(<4 x s32>) = IMPLICIT_DEF
%2(<4 x s32>) = G_SUB %0, %1
@@ -95,7 +96,6 @@ body: |
...
---
name: test_sub_v2i64
-# ALL-LABEL: name: test_sub_v2i64
alignment: 4
legalized: false
regBankSelected: false
@@ -103,14 +103,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# ALL: %0(<2 x s64>) = IMPLICIT_DEF
-# ALL-NEXT: %1(<2 x s64>) = IMPLICIT_DEF
-# ALL-NEXT: %2(<2 x s64>) = G_SUB %0, %1
-# ALL-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %xmm0, %xmm1
+ ; ALL-LABEL: name: test_sub_v2i64
+ ; ALL: [[DEF:%[0-9]+]](<2 x s64>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<2 x s64>) = IMPLICIT_DEF
+ ; ALL: [[SUB:%[0-9]+]](<2 x s64>) = G_SUB [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<2 x s64>) = IMPLICIT_DEF
%1(<2 x s64>) = IMPLICIT_DEF
%2(<2 x s64>) = G_SUB %0, %1
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub-v256.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub-v256.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub-v256.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub-v256.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -mattr=+avx2 -global-isel -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=ALL --check-prefix=AVX2
# TODO: add tests for additional configuration after the legalization supported
--- |
@@ -24,7 +25,6 @@
...
---
name: test_sub_v32i8
-# ALL-LABEL: name: test_sub_v32i8
alignment: 4
legalized: false
regBankSelected: false
@@ -32,14 +32,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# AVX2: %0(<32 x s8>) = IMPLICIT_DEF
-# AVX2-NEXT: %1(<32 x s8>) = IMPLICIT_DEF
-# AVX2-NEXT: %2(<32 x s8>) = G_SUB %0, %1
-# AVX2-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %ymm0, %ymm1
+ ; ALL-LABEL: name: test_sub_v32i8
+ ; ALL: [[DEF:%[0-9]+]](<32 x s8>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<32 x s8>) = IMPLICIT_DEF
+ ; ALL: [[SUB:%[0-9]+]](<32 x s8>) = G_SUB [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<32 x s8>) = IMPLICIT_DEF
%1(<32 x s8>) = IMPLICIT_DEF
%2(<32 x s8>) = G_SUB %0, %1
@@ -48,7 +49,6 @@ body: |
...
---
name: test_sub_v16i16
-# ALL-LABEL: name: test_sub_v16i16
alignment: 4
legalized: false
regBankSelected: false
@@ -56,14 +56,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# AVX2: %0(<16 x s16>) = IMPLICIT_DEF
-# AVX2-NEXT: %1(<16 x s16>) = IMPLICIT_DEF
-# AVX2-NEXT: %2(<16 x s16>) = G_SUB %0, %1
-# AVX2-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %ymm0, %ymm1
+ ; ALL-LABEL: name: test_sub_v16i16
+ ; ALL: [[DEF:%[0-9]+]](<16 x s16>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<16 x s16>) = IMPLICIT_DEF
+ ; ALL: [[SUB:%[0-9]+]](<16 x s16>) = G_SUB [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<16 x s16>) = IMPLICIT_DEF
%1(<16 x s16>) = IMPLICIT_DEF
%2(<16 x s16>) = G_SUB %0, %1
@@ -72,7 +73,6 @@ body: |
...
---
name: test_sub_v8i32
-# ALL-LABEL: name: test_sub_v8i32
alignment: 4
legalized: false
regBankSelected: false
@@ -80,14 +80,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# AVX2: %0(<8 x s32>) = IMPLICIT_DEF
-# AVX2-NEXT: %1(<8 x s32>) = IMPLICIT_DEF
-# AVX2-NEXT: %2(<8 x s32>) = G_SUB %0, %1
-# AVX2-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %ymm0, %ymm1
+ ; ALL-LABEL: name: test_sub_v8i32
+ ; ALL: [[DEF:%[0-9]+]](<8 x s32>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<8 x s32>) = IMPLICIT_DEF
+ ; ALL: [[SUB:%[0-9]+]](<8 x s32>) = G_SUB [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<8 x s32>) = IMPLICIT_DEF
%1(<8 x s32>) = IMPLICIT_DEF
%2(<8 x s32>) = G_SUB %0, %1
@@ -96,7 +97,6 @@ body: |
...
---
name: test_sub_v4i64
-# ALL-LABEL: name: test_sub_v4i64
alignment: 4
legalized: false
regBankSelected: false
@@ -104,14 +104,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# AVX2: %0(<4 x s64>) = IMPLICIT_DEF
-# AVX2-NEXT: %1(<4 x s64>) = IMPLICIT_DEF
-# AVX2-NEXT: %2(<4 x s64>) = G_SUB %0, %1
-# AVX2-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %ymm0, %ymm1
+ ; ALL-LABEL: name: test_sub_v4i64
+ ; ALL: [[DEF:%[0-9]+]](<4 x s64>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<4 x s64>) = IMPLICIT_DEF
+ ; ALL: [[SUB:%[0-9]+]](<4 x s64>) = G_SUB [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<4 x s64>) = IMPLICIT_DEF
%1(<4 x s64>) = IMPLICIT_DEF
%2(<4 x s64>) = G_SUB %0, %1
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub-v512.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub-v512.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub-v512.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub-v512.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -mattr=+avx512f,+avx512bw -global-isel -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=ALL --check-prefix=AVX512BW
# TODO: add tests for additional configuration after the legalization supported
--- |
@@ -24,7 +25,6 @@
...
---
name: test_sub_v64i8
-# ALL-LABEL: name: test_sub_v64i8
alignment: 4
legalized: false
regBankSelected: false
@@ -32,14 +32,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# AVX512BW: %0(<64 x s8>) = IMPLICIT_DEF
-# AVX512BW-NEXT: %1(<64 x s8>) = IMPLICIT_DEF
-# AVX512BW-NEXT: %2(<64 x s8>) = G_SUB %0, %1
-# AVX512BW-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %zmm0, %zmm1
+ ; ALL-LABEL: name: test_sub_v64i8
+ ; ALL: [[DEF:%[0-9]+]](<64 x s8>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<64 x s8>) = IMPLICIT_DEF
+ ; ALL: [[SUB:%[0-9]+]](<64 x s8>) = G_SUB [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<64 x s8>) = IMPLICIT_DEF
%1(<64 x s8>) = IMPLICIT_DEF
%2(<64 x s8>) = G_SUB %0, %1
@@ -48,7 +49,6 @@ body: |
...
---
name: test_sub_v32i16
-# ALL-LABEL: name: test_sub_v32i16
alignment: 4
legalized: false
regBankSelected: false
@@ -56,14 +56,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# AVX512BW: %0(<32 x s16>) = IMPLICIT_DEF
-# AVX512BW-NEXT: %1(<32 x s16>) = IMPLICIT_DEF
-# AVX512BW-NEXT: %2(<32 x s16>) = G_SUB %0, %1
-# AVX512BW-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %zmm0, %zmm1
+ ; ALL-LABEL: name: test_sub_v32i16
+ ; ALL: [[DEF:%[0-9]+]](<32 x s16>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<32 x s16>) = IMPLICIT_DEF
+ ; ALL: [[SUB:%[0-9]+]](<32 x s16>) = G_SUB [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<32 x s16>) = IMPLICIT_DEF
%1(<32 x s16>) = IMPLICIT_DEF
%2(<32 x s16>) = G_SUB %0, %1
@@ -72,7 +73,6 @@ body: |
...
---
name: test_sub_v16i32
-# ALL-LABEL: name: test_sub_v16i32
alignment: 4
legalized: false
regBankSelected: false
@@ -80,14 +80,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# ALL: %0(<16 x s32>) = IMPLICIT_DEF
-# ALL-NEXT: %1(<16 x s32>) = IMPLICIT_DEF
-# ALL-NEXT: %2(<16 x s32>) = G_SUB %0, %1
-# ALL-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %zmm0, %zmm1
+ ; ALL-LABEL: name: test_sub_v16i32
+ ; ALL: [[DEF:%[0-9]+]](<16 x s32>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<16 x s32>) = IMPLICIT_DEF
+ ; ALL: [[SUB:%[0-9]+]](<16 x s32>) = G_SUB [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<16 x s32>) = IMPLICIT_DEF
%1(<16 x s32>) = IMPLICIT_DEF
%2(<16 x s32>) = G_SUB %0, %1
@@ -96,7 +97,6 @@ body: |
...
---
name: test_sub_v8i64
-# ALL-LABEL: name: test_sub_v8i64
alignment: 4
legalized: false
regBankSelected: false
@@ -104,14 +104,15 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# ALL: %0(<8 x s64>) = IMPLICIT_DEF
-# ALL-NEXT: %1(<8 x s64>) = IMPLICIT_DEF
-# ALL-NEXT: %2(<8 x s64>) = G_SUB %0, %1
-# ALL-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
liveins: %zmm0, %zmm1
+ ; ALL-LABEL: name: test_sub_v8i64
+ ; ALL: [[DEF:%[0-9]+]](<8 x s64>) = IMPLICIT_DEF
+ ; ALL: [[DEF1:%[0-9]+]](<8 x s64>) = IMPLICIT_DEF
+ ; ALL: [[SUB:%[0-9]+]](<8 x s64>) = G_SUB [[DEF]], [[DEF1]]
+ ; ALL: RET 0
%0(<8 x s64>) = IMPLICIT_DEF
%1(<8 x s64>) = IMPLICIT_DEF
%2(<8 x s64>) = G_SUB %0, %1
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-sub.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -global-isel -run-pass=legalizer %s -o - | FileCheck %s
--- |
@@ -12,7 +13,6 @@
...
---
name: test_sub_i1
-# CHECK-LABEL: name: test_sub_i1
alignment: 4
legalized: false
regBankSelected: false
@@ -20,15 +20,16 @@ registers:
- { id: 0, class: _, preferred-register: '' }
- { id: 1, class: _, preferred-register: '' }
- { id: 2, class: _, preferred-register: '' }
-# CHECK: %0(s32) = COPY %edx
-# CHECK-NEXT: %3(s8) = G_TRUNC %0(s32)
-# CHECK-NEXT: %4(s8) = G_TRUNC %0(s32)
-# CHECK-NEXT: %5(s8) = G_SUB %3, %4
-# CHECK-NEXT: %2(s1) = G_TRUNC %5(s8)
-# CHECK-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_sub_i1
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %edx
+ ; CHECK: [[TRUNC:%[0-9]+]](s8) = G_TRUNC [[COPY]](s32)
+ ; CHECK: [[TRUNC1:%[0-9]+]](s8) = G_TRUNC [[COPY]](s32)
+ ; CHECK: [[SUB:%[0-9]+]](s8) = G_SUB [[TRUNC]], [[TRUNC1]]
+ ; CHECK: [[TRUNC2:%[0-9]+]](s1) = G_TRUNC [[SUB]](s8)
+ ; CHECK: RET 0
%0(s32) = COPY %edx
%1(s1) = G_TRUNC %0(s32)
%2(s1) = G_SUB %1, %1
@@ -36,7 +37,6 @@ body: |
...
---
name: test_sub_i32
-# CHECK-LABEL: name: test_sub_i32
alignment: 4
legalized: false
regBankSelected: false
@@ -45,15 +45,17 @@ registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
- { id: 2, class: _ }
-# CHECK: %0(s32) = COPY %edi
-# CHECK-NEXT: %1(s32) = COPY %esi
-# CHECK-NEXT: %2(s32) = G_SUB %0, %1
-# CHECK-NEXT: %eax = COPY %2(s32)
-# CHECK-NEXT: RET 0, implicit %eax
body: |
bb.1 (%ir-block.0):
liveins: %edi, %esi
+ ; CHECK-LABEL: name: test_sub_i32
+ ; CHECK: liveins: %edi, %esi
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %edi
+ ; CHECK: [[COPY1:%[0-9]+]](s32) = COPY %esi
+ ; CHECK: [[SUB:%[0-9]+]](s32) = G_SUB [[COPY]], [[COPY1]]
+ ; CHECK: %eax = COPY [[SUB]](s32)
+ ; CHECK: RET 0, implicit %eax
%0(s32) = COPY %edi
%1(s32) = COPY %esi
%2(s32) = G_SUB %0, %1
Modified: llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-xor-scalar.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-xor-scalar.mir?rev=316137&r1=316136&r2=316137&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-xor-scalar.mir (original)
+++ llvm/trunk/test/CodeGen/X86/GlobalISel/legalize-xor-scalar.mir Wed Oct 18 16:18:12 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -global-isel -run-pass=legalizer %s -o - | FileCheck %s
--- |
@@ -29,7 +30,6 @@
...
---
name: test_xor_i1
-# CHECK-LABEL: name: test_xor_i1
alignment: 4
legalized: false
regBankSelected: false
@@ -37,15 +37,16 @@ registers:
- { id: 0, class: _, preferred-register: '' }
- { id: 1, class: _, preferred-register: '' }
- { id: 2, class: _, preferred-register: '' }
-# CHECK: %0(s32) = COPY %edx
-# CHECK-NEXT: %3(s8) = G_TRUNC %0(s32)
-# CHECK-NEXT: %4(s8) = G_TRUNC %0(s32)
-# CHECK-NEXT: %5(s8) = G_XOR %3, %4
-# CHECK-NEXT: %2(s1) = G_TRUNC %5(s8)
-# CHECK-NEXT: RET 0
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_xor_i1
+ ; CHECK: [[COPY:%[0-9]+]](s32) = COPY %edx
+ ; CHECK: [[TRUNC:%[0-9]+]](s8) = G_TRUNC [[COPY]](s32)
+ ; CHECK: [[TRUNC1:%[0-9]+]](s8) = G_TRUNC [[COPY]](s32)
+ ; CHECK: [[XOR:%[0-9]+]](s8) = G_XOR [[TRUNC]], [[TRUNC1]]
+ ; CHECK: [[TRUNC2:%[0-9]+]](s1) = G_TRUNC [[XOR]](s8)
+ ; CHECK: RET 0
%0(s32) = COPY %edx
%1(s1) = G_TRUNC %0(s32)
%2(s1) = G_XOR %1, %1
@@ -53,7 +54,6 @@ body: |
...
---
name: test_xor_i8
-# CHECK-LABEL: name: test_xor_i8
alignment: 4
legalized: false
regBankSelected: false
@@ -64,12 +64,13 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s8) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s8) = G_XOR %0, %0
-# CHECK-NEXT: %al = COPY %1(s8)
-# CHECK-NEXT: RET 0, implicit %al
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_xor_i8
+ ; CHECK: [[DEF:%[0-9]+]](s8) = IMPLICIT_DEF
+ ; CHECK: [[XOR:%[0-9]+]](s8) = G_XOR [[DEF]], [[DEF]]
+ ; CHECK: %al = COPY [[XOR]](s8)
+ ; CHECK: RET 0, implicit %al
%0(s8) = IMPLICIT_DEF
%1(s8) = G_XOR %0, %0
%al = COPY %1(s8)
@@ -78,7 +79,6 @@ body: |
...
---
name: test_xor_i16
-# CHECK-LABEL: name: test_xor_i16
alignment: 4
legalized: false
regBankSelected: false
@@ -89,12 +89,13 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s16) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s16) = G_XOR %0, %0
-# CHECK-NEXT: %ax = COPY %1(s16)
-# CHECK-NEXT: RET 0, implicit %ax
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_xor_i16
+ ; CHECK: [[DEF:%[0-9]+]](s16) = IMPLICIT_DEF
+ ; CHECK: [[XOR:%[0-9]+]](s16) = G_XOR [[DEF]], [[DEF]]
+ ; CHECK: %ax = COPY [[XOR]](s16)
+ ; CHECK: RET 0, implicit %ax
%0(s16) = IMPLICIT_DEF
%1(s16) = G_XOR %0, %0
%ax = COPY %1(s16)
@@ -103,7 +104,6 @@ body: |
...
---
name: test_xor_i32
-# CHECK-LABEL: name: test_xor_i32
alignment: 4
legalized: false
regBankSelected: false
@@ -114,12 +114,13 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s32) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s32) = G_XOR %0, %0
-# CHECK-NEXT: %eax = COPY %1(s32)
-# CHECK-NEXT: RET 0, implicit %eax
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_xor_i32
+ ; CHECK: [[DEF:%[0-9]+]](s32) = IMPLICIT_DEF
+ ; CHECK: [[XOR:%[0-9]+]](s32) = G_XOR [[DEF]], [[DEF]]
+ ; CHECK: %eax = COPY [[XOR]](s32)
+ ; CHECK: RET 0, implicit %eax
%0(s32) = IMPLICIT_DEF
%1(s32) = G_XOR %0, %0
%eax = COPY %1(s32)
@@ -128,7 +129,6 @@ body: |
...
---
name: test_xor_i64
-# CHECK-LABEL: name: test_xor_i64
alignment: 4
legalized: false
regBankSelected: false
@@ -139,12 +139,13 @@ liveins:
fixedStack:
stack:
constants:
-# CHECK: %0(s64) = IMPLICIT_DEF
-# CHECK-NEXT: %1(s64) = G_XOR %0, %0
-# CHECK-NEXT: %rax = COPY %1(s64)
-# CHECK-NEXT: RET 0, implicit %rax
body: |
bb.1 (%ir-block.0):
+ ; CHECK-LABEL: name: test_xor_i64
+ ; CHECK: [[DEF:%[0-9]+]](s64) = IMPLICIT_DEF
+ ; CHECK: [[XOR:%[0-9]+]](s64) = G_XOR [[DEF]], [[DEF]]
+ ; CHECK: %rax = COPY [[XOR]](s64)
+ ; CHECK: RET 0, implicit %rax
%0(s64) = IMPLICIT_DEF
%1(s64) = G_XOR %0, %0
%rax = COPY %1(s64)
More information about the llvm-commits
mailing list