1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00

[AArch64][GlobalISel] Test default regbank mapping for G_ICMP.

Also relax a RegisterBankInfo verifier check that's incompatible with
1-bit mappings.

llvm-svn: 281735
This commit is contained in:
Ahmed Bougacha 2016-09-16 14:44:54 +00:00
parent 1fd329a7e8
commit 33be9e7185
2 changed files with 42 additions and 1 deletions

View File

@ -390,7 +390,7 @@ void RegisterBankInfo::PartialMapping::dump() const {
bool RegisterBankInfo::PartialMapping::verify() const {
assert(RegBank && "Register bank not set");
assert(Length && "Empty mapping");
assert((StartIdx < getHighBitIdx()) && "Overflow, switch to APInt?");
assert((StartIdx <= getHighBitIdx()) && "Overflow, switch to APInt?");
// Check if the minimum width fits into RegBank.
assert(RegBank->getSize() >= Length && "Register bank too small for Mask");
return true;

View File

@ -35,6 +35,9 @@
define void @test_constant_s32() { ret void }
define void @test_constant_p0() { ret void }
define void @test_icmp_s32() { ret void }
define void @test_icmp_p0() { ret void }
define void @test_frame_index_p0() {
%ptr0 = alloca i64
ret void
@ -493,6 +496,44 @@ body: |
%0(p0) = G_CONSTANT 0
...
---
# CHECK-LABEL: name: test_icmp_s32
name: test_icmp_s32
legalized: true
# CHECK: registers:
# CHECK: - { id: 0, class: gpr }
# CHECK: - { id: 1, class: gpr }
registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
body: |
bb.0:
liveins: %w0
; CHECK: %0(s32) = COPY %w0
; CHECK: %1(s1) = G_ICMP intpred(ne), %0(s32), %0
%0(s32) = COPY %w0
%1(s1) = G_ICMP intpred(ne), %0, %0
...
---
# CHECK-LABEL: name: test_icmp_p0
name: test_icmp_p0
legalized: true
# CHECK: registers:
# CHECK: - { id: 0, class: gpr }
# CHECK: - { id: 1, class: gpr }
registers:
- { id: 0, class: _ }
- { id: 1, class: _ }
body: |
bb.0:
liveins: %x0
; CHECK: %0(p0) = COPY %x0
; CHECK: %1(s1) = G_ICMP intpred(ne), %0(p0), %0
%0(p0) = COPY %x0
%1(s1) = G_ICMP intpred(ne), %0, %0
...
---
# CHECK-LABEL: name: test_frame_index_p0
name: test_frame_index_p0