mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-29 06:10:48 +00:00
[GlobalISel][AArch64] Make G_EXTRACT_VECTOR_ELT legal for v8s16s
This case was missing before, so we couldn't legalize it. Add it to AArch64LegalizerInfo.cpp and update select-extract-vector-elt.mir. llvm-svn: 359231
This commit is contained in:
parent
acd6f9ed01
commit
620cbaeb4e
@ -517,8 +517,8 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST) {
|
|||||||
.minScalar(2, s64)
|
.minScalar(2, s64)
|
||||||
.legalIf([=](const LegalityQuery &Query) {
|
.legalIf([=](const LegalityQuery &Query) {
|
||||||
const LLT &VecTy = Query.Types[1];
|
const LLT &VecTy = Query.Types[1];
|
||||||
return VecTy == v2s16 || VecTy == v4s16 || VecTy == v4s32 ||
|
return VecTy == v2s16 || VecTy == v4s16 || VecTy == v8s16 ||
|
||||||
VecTy == v2s64 || VecTy == v2s32;
|
VecTy == v4s32 || VecTy == v2s64 || VecTy == v2s32;
|
||||||
});
|
});
|
||||||
|
|
||||||
getActionDefinitionsBuilder(G_INSERT_VECTOR_ELT)
|
getActionDefinitionsBuilder(G_INSERT_VECTOR_ELT)
|
||||||
|
@ -115,3 +115,26 @@ body: |
|
|||||||
RET_ReallyLR implicit $h0
|
RET_ReallyLR implicit $h0
|
||||||
|
|
||||||
...
|
...
|
||||||
|
---
|
||||||
|
name: v8s16_fpr
|
||||||
|
alignment: 2
|
||||||
|
legalized: true
|
||||||
|
regBankSelected: true
|
||||||
|
tracksRegLiveness: true
|
||||||
|
body: |
|
||||||
|
bb.0:
|
||||||
|
liveins: $q0
|
||||||
|
; CHECK-LABEL: name: v8s16_fpr
|
||||||
|
; CHECK: liveins: $q0
|
||||||
|
; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
|
||||||
|
; CHECK: [[CPYi16_:%[0-9]+]]:fpr16 = CPYi16 [[COPY]], 1
|
||||||
|
; CHECK: $h0 = COPY [[CPYi16_]]
|
||||||
|
; CHECK: RET_ReallyLR implicit $h0
|
||||||
|
%0:fpr(<8 x s16>) = COPY $q0
|
||||||
|
%2:gpr(s64) = G_CONSTANT i64 1
|
||||||
|
%3:fpr(s64) = COPY %2(s64)
|
||||||
|
%1:fpr(s16) = G_EXTRACT_VECTOR_ELT %0(<8 x s16>), %3(s64)
|
||||||
|
$h0 = COPY %1(s16)
|
||||||
|
RET_ReallyLR implicit $h0
|
||||||
|
|
||||||
|
...
|
||||||
|
Loading…
Reference in New Issue
Block a user