diff options
author | Quentin Colombet <qcolombet@apple.com> | 2017-10-16 22:28:27 +0000 |
---|---|---|
committer | Quentin Colombet <qcolombet@apple.com> | 2017-10-16 22:28:27 +0000 |
commit | 7ff760d050a8e941f649e1d3d350d48828ba7d5b (patch) | |
tree | 323f0cb8fd9a9a40fd763344fc23b9e8a2a1dcba /test | |
parent | 9f219e8d892284417fa5c1f64b69a36b8602a06f (diff) |
[AArch64][LegalizerInfo] Mark s128 G_BITCAST legal
We used to mark all G_BITCAST of 128-bit legal but only for vector
types. Scalars of this size are just fine as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315945 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/AArch64/GlobalISel/legalize-simple.mir | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/CodeGen/AArch64/GlobalISel/legalize-simple.mir b/test/CodeGen/AArch64/GlobalISel/legalize-simple.mir index d2a02a3f65b..495ea6c7504 100644 --- a/test/CodeGen/AArch64/GlobalISel/legalize-simple.mir +++ b/test/CodeGen/AArch64/GlobalISel/legalize-simple.mir @@ -9,6 +9,9 @@ next: ret void } + define void @bitcast128() { + ret void + } ... --- @@ -84,3 +87,26 @@ body: | %15(<4 x s8>) = G_BITCAST %0 %16(<2 x s16>) = G_BITCAST %0 ... + +--- +name: bitcast128 +tracksRegLiveness: true +registers: + - { id: 0, class: _} + - { id: 1, class: _} + - { id: 2, class: _} + - { id: 3, class: _} +body: | + bb.1: + liveins: %x0, %x1 + ; CHECK-LABEL: bitcast128 + ; This is legal and shouldn't be changed. + ; CHECK: %2(<2 x s64>) = G_BITCAST %3(s128) + %0(s64) = COPY %x0 + %1(s64) = COPY %x1 + %3(s128) = G_MERGE_VALUES %0(s64), %1(s64) + %2(<2 x s64>) = G_BITCAST %3(s128) + %q0 = COPY %2(<2 x s64>) + RET_ReallyLR implicit %q0 + +... |