[llvm] r316087 - AArch64/GISel: Fix a couple of tests that were testing the wrong thing
Justin Bogner via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 18 08:34:33 PDT 2017
Author: bogner
Date: Wed Oct 18 08:34:33 2017
New Revision: 316087
URL: http://llvm.org/viewvc/llvm-project?rev=316087&view=rev
Log:
AArch64/GISel: Fix a couple of tests that were testing the wrong thing
Fix a couple of tests that were extending the wrong vreg, and
regenerate their checks with update_mir_test_checks. This looks like
it was a copy-paste or test update error.
Modified:
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-mul.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-or.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-sub.mir
llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-xor.mir
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=316087&r1=316086&r2=316087&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-mul.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-mul.mir Wed Oct 18 08:34:33 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
--- |
@@ -22,18 +23,22 @@ registers:
body: |
bb.0.entry:
liveins: %x0, %x1, %x2, %x3
- ; CHECK-LABEL: name: test_scalar_mul_small
- ; CHECK: [[OP0:%.*]](s32) = G_TRUNC %0
- ; CHECK: [[OP1:%.*]](s32) = G_TRUNC %1
- ; CHECK: [[RES32:%.*]](s32) = G_MUL [[OP0]], [[OP1]]
- ; CHECK: [[RES:%.*]](s8) = G_TRUNC [[RES32]](s32)
+ ; CHECK-LABEL: name: test_scalar_mul_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: [[MUL:%[0-9]+]](s32) = G_MUL [[TRUNC]], [[TRUNC1]]
+ ; CHECK: [[TRUNC2:%[0-9]+]](s8) = G_TRUNC [[MUL]](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
%3(s8) = G_TRUNC %1
%4(s8) = G_MUL %2, %3
- %5(s64) = G_ANYEXT %2
+ %5(s64) = G_ANYEXT %4
%x0 = COPY %5
...
@@ -44,15 +49,17 @@ body: |
bb.0:
liveins: %x0, %x1, %w2, %w3
+ ; CHECK-LABEL: name: test_mul_overflow
+ ; CHECK: [[COPY:%[0-9]+]](s64) = COPY %x0
+ ; 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: [[TRUNC:%[0-9]+]](s1) = G_TRUNC [[ICMP]](s32)
%0:_(s64) = COPY %x0
%1:_(s64) = COPY %x1
- ; CHECK-LABEL: name: test_mul_overflow
- ; CHECK: %2(s64) = G_MUL %0, %1
- ; CHECK: [[HI:%[0-9]+]](s64) = G_SMULH %0, %1
- ; CHECK: [[ZERO:%[0-9]+]](s64) = G_CONSTANT i64 0
- ; CHECK: [[CMP:%[0-9]+]](s32) = G_ICMP intpred(ne), [[HI]](s64), [[ZERO]]
- ; CHECK: [[TRUNC:%[0-9]+]](s1) = G_TRUNC [[CMP]]
%2:_(s64), %3:_(s1) = G_SMULO %0, %1
...
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-or.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-or.mir?rev=316087&r1=316086&r2=316087&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-or.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-or.mir Wed Oct 18 08:34:33 2017
@@ -1,3 +1,4 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -mtriple=aarch64-apple-ios -run-pass=legalizer -global-isel %s -o - | FileCheck %s
---
@@ -12,18 +13,22 @@ registers:
body: |
bb.0:
liveins: %x0, %x1, %x2, %x3
- ; CHECK-LABEL: name: test_scalar_or_small
- ; CHECK: [[OP0:%.*]](s32) = G_TRUNC %0
- ; CHECK: [[OP1:%.*]](s32) = G_TRUNC %1
- ; CHECK: [[RES32:%.*]](s32) = G_OR [[OP0]], [[OP1]]
- ; CHECK: [[RES:%.*]](s8) = G_TRUNC [[RES32]](s32)
+ ; CHECK-LABEL: name: test_scalar_or_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: [[OR:%[0-9]+]](s32) = G_OR [[TRUNC]], [[TRUNC1]]
+ ; CHECK: [[TRUNC2:%[0-9]+]](s8) = G_TRUNC [[OR]](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
%3(s8) = G_TRUNC %1
%4(s8) = G_OR %2, %3
- %5(s64) = G_ANYEXT %2
+ %5(s64) = G_ANYEXT %4
%x0 = COPY %5
...
@@ -42,24 +47,20 @@ registers:
body: |
bb.0:
liveins: %x0, %x1, %x2, %x3
- ; CHECK-LABEL: name: test_big_scalar_power_of_2
- ; CHECK: [[OP0_0:%.*]](s64) = COPY %x0
- ; CHECK-NEXT: [[OP0_1:%.*]](s64) = COPY %x1
- ; CHECK-NEXT: [[OP1_0:%.*]](s64) = COPY %x2
- ; CHECK-NEXT: [[OP1_1:%.*]](s64) = COPY %x3
- ; CHECK-NEXT: [[RES_0:%.*]](s64) = G_OR [[OP0_0]], [[OP1_0]]
- ; CHECK-NEXT: [[RES_1:%.*]](s64) = G_OR [[OP0_1]], [[OP1_1]]
- ; We have a temporary G_MERGE_VALUES in the legalizer
- ; that gets cleaned up with the G_UNMERGE_VALUES.
- ; Thus,
- ; tmp = G_MERGE_VALUES [[RES_0]], [[RES_1]]
- ; %7, %8 = G_UNMERGE_VALUES tmp
- ; %x0 = COPY %7
- ; %x1 = COPY %8
- ; translates into
- ; CHECK-NEXT: %x0 = COPY [[RES_0]]
- ; CHECK-NEXT: %x1 = COPY [[RES_1]]
+ ; We have a temporary G_MERGE_VALUES in the legalizer that gets
+ ; cleaned up with the G_UNMERGE_VALUES, so we end up directly
+ ; copying the results of the G_OR ops.
+ ; CHECK-LABEL: name: test_big_scalar_power_of_2
+ ; 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: [[OR:%[0-9]+]](s64) = G_OR [[COPY]], [[COPY2]]
+ ; CHECK: [[OR1:%[0-9]+]](s64) = G_OR [[COPY1]], [[COPY3]]
+ ; CHECK: %x0 = COPY [[OR]](s64)
+ ; CHECK: %x1 = COPY [[OR1]](s64)
+ ; CHECK: RET_ReallyLR implicit %x0, implicit %x1
%0(s64) = COPY %x0
%1(s64) = COPY %x1
%2(s64) = COPY %x2
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-sub.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-sub.mir?rev=316087&r1=316086&r2=316087&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-sub.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-sub.mir Wed Oct 18 08:34:33 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,17 +22,21 @@ registers:
body: |
bb.0.entry:
liveins: %x0, %x1, %x2, %x3
- ; CHECK-LABEL: name: test_scalar_sub_small
- ; CHECK: [[OP0:%.*]](s32) = G_TRUNC %0
- ; CHECK: [[OP1:%.*]](s32) = G_TRUNC %1
- ; CHECK: [[RES32:%.*]](s32) = G_SUB [[OP0]], [[OP1]]
- ; CHECK: [[RES:%.*]](s8) = G_TRUNC [[RES32]](s32)
+ ; CHECK-LABEL: name: test_scalar_sub_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: [[SUB:%[0-9]+]](s32) = G_SUB [[TRUNC]], [[TRUNC1]]
+ ; CHECK: [[TRUNC2:%[0-9]+]](s8) = G_TRUNC [[SUB]](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
%3(s8) = G_TRUNC %1
%4(s8) = G_SUB %2, %3
- %5(s64) = G_ANYEXT %2
+ %5(s64) = G_ANYEXT %4
%x0 = COPY %5
...
Modified: llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-xor.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-xor.mir?rev=316087&r1=316086&r2=316087&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-xor.mir (original)
+++ llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-xor.mir Wed Oct 18 08:34:33 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,17 +22,21 @@ registers:
body: |
bb.0.entry:
liveins: %x0, %x1, %x2, %x3
- ; CHECK-LABEL: name: test_scalar_xor_small
- ; CHECK: [[OP0:%.*]](s32) = G_TRUNC %0
- ; CHECK: [[OP1:%.*]](s32) = G_TRUNC %1
- ; CHECK: [[RES32:%.*]](s32) = G_XOR [[OP0]], [[OP1]]
- ; CHECK: [[RES:%.*]](s8) = G_TRUNC [[RES32]](s32)
+ ; CHECK-LABEL: name: test_scalar_xor_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: [[XOR:%[0-9]+]](s32) = G_XOR [[TRUNC]], [[TRUNC1]]
+ ; CHECK: [[TRUNC2:%[0-9]+]](s8) = G_TRUNC [[XOR]](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
%3(s8) = G_TRUNC %1
%4(s8) = G_XOR %2, %3
- %5(s64) = G_ANYEXT %2
+ %5(s64) = G_ANYEXT %4
%x0 = COPY %5
...
More information about the llvm-commits
mailing list