1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-02-01 05:01:59 +01:00

AMDGPU/GlobalISel: Select G_PTRTOINT

llvm-svn: 373715
This commit is contained in:
Matt Arsenault 2019-10-04 08:35:37 +00:00
parent 95d0d11109
commit 98b94bee79
2 changed files with 102 additions and 0 deletions

View File

@ -1670,6 +1670,7 @@ bool AMDGPUInstructionSelector::select(MachineInstr &I) {
return selectG_UADDO_USUBO(I);
case TargetOpcode::G_INTTOPTR:
case TargetOpcode::G_BITCAST:
case TargetOpcode::G_PTRTOINT:
return selectCOPY(I);
case TargetOpcode::G_CONSTANT:
case TargetOpcode::G_FCONSTANT:

View File

@ -0,0 +1,101 @@
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -march=amdgcn -mcpu=tahiti -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
---
name: ptrtoint_s_p3_to_s_s32
legalized: true
regBankSelected: true
tracksRegLiveness: true
body: |
bb.0:
liveins: $sgpr0
; CHECK-LABEL: name: ptrtoint_s_p3_to_s_s32
; CHECK: liveins: $sgpr0
; CHECK: [[COPY:%[0-9]+]]:sreg_32_xm0 = COPY $sgpr0
; CHECK: S_ENDPGM 0, implicit [[COPY]]
%0:sgpr(p3) = COPY $sgpr0
%1:sgpr(s32) = G_PTRTOINT %0
S_ENDPGM 0, implicit %1
...
---
name: ptrtoint_s_p5_to_s_s32
legalized: true
regBankSelected: true
tracksRegLiveness: true
body: |
bb.0:
liveins: $sgpr0
; CHECK-LABEL: name: ptrtoint_s_p5_to_s_s32
; CHECK: liveins: $sgpr0
; CHECK: [[COPY:%[0-9]+]]:sreg_32_xm0 = COPY $sgpr0
; CHECK: S_ENDPGM 0, implicit [[COPY]]
%0:sgpr(p5) = COPY $sgpr0
%1:sgpr(s32) = G_PTRTOINT %0
S_ENDPGM 0, implicit %1
...
---
name: ptrtoint_s_p0_to_s_s64
legalized: true
regBankSelected: true
tracksRegLiveness: true
body: |
bb.0:
liveins: $sgpr0_sgpr1
; CHECK-LABEL: name: ptrtoint_s_p0_to_s_s64
; CHECK: liveins: $sgpr0_sgpr1
; CHECK: [[COPY:%[0-9]+]]:sreg_64_xexec = COPY $sgpr0_sgpr1
; CHECK: S_ENDPGM 0, implicit [[COPY]]
%0:sgpr(p0) = COPY $sgpr0_sgpr1
%1:sgpr(s64) = G_PTRTOINT %0
S_ENDPGM 0, implicit %1
...
---
name: ptrtoint_s_p1_to_s_s64
legalized: true
regBankSelected: true
tracksRegLiveness: true
body: |
bb.0:
liveins: $sgpr0_sgpr1
; CHECK-LABEL: name: ptrtoint_s_p1_to_s_s64
; CHECK: liveins: $sgpr0_sgpr1
; CHECK: [[COPY:%[0-9]+]]:sreg_64_xexec = COPY $sgpr0_sgpr1
; CHECK: S_ENDPGM 0, implicit [[COPY]]
%0:sgpr(p1) = COPY $sgpr0_sgpr1
%1:sgpr(s64) = G_PTRTOINT %0
S_ENDPGM 0, implicit %1
...
---
name: ptrtoint_s_p999_to_s_s64
legalized: true
regBankSelected: true
tracksRegLiveness: true
body: |
bb.0:
liveins: $sgpr0_sgpr1
; CHECK-LABEL: name: ptrtoint_s_p999_to_s_s64
; CHECK: liveins: $sgpr0_sgpr1
; CHECK: [[COPY:%[0-9]+]]:sreg_64_xexec = COPY $sgpr0_sgpr1
; CHECK: S_ENDPGM 0, implicit [[COPY]]
%0:sgpr(p999) = COPY $sgpr0_sgpr1
%1:sgpr(s64) = G_PTRTOINT %0
S_ENDPGM 0, implicit %1
...