mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
[ARM] GlobalISel: Map shift operands to GPRs
llvm-svn: 315067
This commit is contained in:
parent
af6f8e8c67
commit
e8018ef17d
@ -218,6 +218,9 @@ ARMRegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
|
||||
case G_AND:
|
||||
case G_OR:
|
||||
case G_XOR:
|
||||
case G_LSHR:
|
||||
case G_ASHR:
|
||||
case G_SHL:
|
||||
case G_SDIV:
|
||||
case G_UDIV:
|
||||
case G_SEXT:
|
||||
|
@ -20,6 +20,10 @@
|
||||
define void @test_or_s32() { ret void}
|
||||
define void @test_xor_s32() { ret void}
|
||||
|
||||
define void @test_lshr_s32() { ret void }
|
||||
define void @test_ashr_s32() { ret void }
|
||||
define void @test_shl_s32() { ret void }
|
||||
|
||||
define void @test_loads() #0 { ret void }
|
||||
define void @test_stores() #0 { ret void }
|
||||
|
||||
@ -505,6 +509,84 @@ body: |
|
||||
%r0 = COPY %2(s32)
|
||||
BX_RET 14, _, implicit %r0
|
||||
|
||||
...
|
||||
---
|
||||
name: test_lshr_s32
|
||||
# CHECK-LABEL: name: test_lshr_s32
|
||||
legalized: true
|
||||
regBankSelected: false
|
||||
selected: false
|
||||
# CHECK: registers:
|
||||
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
|
||||
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
|
||||
# CHECK: - { id: 2, class: gprb, preferred-register: '' }
|
||||
|
||||
registers:
|
||||
- { id: 0, class: _ }
|
||||
- { id: 1, class: _ }
|
||||
- { id: 2, class: _ }
|
||||
body: |
|
||||
bb.0:
|
||||
liveins: %r0, %r1
|
||||
|
||||
%0(s32) = COPY %r0
|
||||
%1(s32) = COPY %r1
|
||||
%2(s32) = G_LSHR %0, %1
|
||||
%r0 = COPY %2(s32)
|
||||
BX_RET 14, _, implicit %r0
|
||||
|
||||
...
|
||||
---
|
||||
name: test_ashr_s32
|
||||
# CHECK-LABEL: name: test_ashr_s32
|
||||
legalized: true
|
||||
regBankSelected: false
|
||||
selected: false
|
||||
# CHECK: registers:
|
||||
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
|
||||
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
|
||||
# CHECK: - { id: 2, class: gprb, preferred-register: '' }
|
||||
|
||||
registers:
|
||||
- { id: 0, class: _ }
|
||||
- { id: 1, class: _ }
|
||||
- { id: 2, class: _ }
|
||||
body: |
|
||||
bb.0:
|
||||
liveins: %r0, %r1
|
||||
|
||||
%0(s32) = COPY %r0
|
||||
%1(s32) = COPY %r1
|
||||
%2(s32) = G_ASHR %0, %1
|
||||
%r0 = COPY %2(s32)
|
||||
BX_RET 14, _, implicit %r0
|
||||
|
||||
...
|
||||
---
|
||||
name: test_shl_s32
|
||||
# CHECK-LABEL: name: test_shl_s32
|
||||
legalized: true
|
||||
regBankSelected: false
|
||||
selected: false
|
||||
# CHECK: registers:
|
||||
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
|
||||
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
|
||||
# CHECK: - { id: 2, class: gprb, preferred-register: '' }
|
||||
|
||||
registers:
|
||||
- { id: 0, class: _ }
|
||||
- { id: 1, class: _ }
|
||||
- { id: 2, class: _ }
|
||||
body: |
|
||||
bb.0:
|
||||
liveins: %r0, %r1
|
||||
|
||||
%0(s32) = COPY %r0
|
||||
%1(s32) = COPY %r1
|
||||
%2(s32) = G_SHL %0, %1
|
||||
%r0 = COPY %2(s32)
|
||||
BX_RET 14, _, implicit %r0
|
||||
|
||||
...
|
||||
---
|
||||
name: test_loads
|
||||
|
Loading…
Reference in New Issue
Block a user