Mostsly these would fail due to trying to use SI with a flat operation. Implementing global loads with MUBUF is more work than flat, so these won't be handled in the initial load selection. Others fail because store of s64 won't initially work, as the current set of patterns expect everything to be turned into v2i32. llvm-svn: 365493
53 lines
1.8 KiB
YAML
53 lines
1.8 KiB
YAML
# RUN: llc -march=amdgcn -mcpu=hawaii -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=GCN
|
|
|
|
---
|
|
|
|
name: constant
|
|
legalized: true
|
|
regBankSelected: true
|
|
|
|
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
|
|
; GCN-LABEL: name: constant
|
|
%0:vgpr(p1) = COPY $vgpr0_vgpr1
|
|
%1:vgpr(p1) = COPY $vgpr2_vgpr3
|
|
|
|
; GCN: %{{[0-9]+}}:sreg_32 = S_MOV_B32 1
|
|
%2:sreg_32(s32) = G_CONSTANT i32 1
|
|
|
|
; GCN: [[LO0:%[0-9]+]]:sreg_32_xm0 = S_MOV_B32 0
|
|
; GCN: [[HI0:%[0-9]+]]:sreg_32_xm0 = S_MOV_B32 1
|
|
; GCN: %{{[0-9]+}}:sreg_64_xexec = REG_SEQUENCE [[LO0]], %subreg.sub0, [[HI0]], %subreg.sub1
|
|
%3:sgpr(s64) = G_CONSTANT i64 4294967296
|
|
|
|
; GCN: %{{[0-9]+}}:sreg_32 = S_MOV_B32 1065353216
|
|
%4:sgpr(s32) = G_FCONSTANT float 1.0
|
|
|
|
; GCN: [[LO1:%[0-9]+]]:sreg_32_xm0 = S_MOV_B32 0
|
|
; GCN: [[HI1:%[0-9]+]]:sreg_32_xm0 = S_MOV_B32 1072693248
|
|
; GCN: %{{[0-9]+}}:sreg_64_xexec = REG_SEQUENCE [[LO1]], %subreg.sub0, [[HI1]], %subreg.sub1
|
|
%5:sgpr(s64) = G_FCONSTANT double 1.0
|
|
|
|
; GCN: %{{[0-9]+}}:vgpr_32 = V_MOV_B32_e32 1
|
|
%6:vgpr(s32) = G_CONSTANT i32 1
|
|
|
|
; GCN: [[LO2:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0
|
|
; GCN: [[HI2:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1
|
|
; GCN: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE [[LO2]], %subreg.sub0, [[HI2]], %subreg.sub1
|
|
%7:vgpr(s64) = G_CONSTANT i64 4294967296
|
|
|
|
; GCN: %{{[0-9]+}}:vgpr_32 = V_MOV_B32_e32 1065353216
|
|
%8:vgpr(s32) = G_FCONSTANT float 1.0
|
|
|
|
; GCN: [[LO3:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0
|
|
; GCN: [[HI3:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1072693248
|
|
; GCN: %{{[0-9]+}}:vreg_64 = REG_SEQUENCE [[LO3]], %subreg.sub0, [[HI3]], %subreg.sub1
|
|
%9:vgpr(s64) = G_FCONSTANT double 1.0
|
|
|
|
S_ENDPGM 0, implicit %2, implicit %4, implicit %6, implicit %8, implicit %3, implicit %5, implicit %7, implicit %9
|
|
|
|
...
|
|
|