mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
[X86] SimplifyDemandedVectorElts - add X86ISD::VPERMV3 mask support
Completes SimplifyDemandedVectorElts's basic variable shuffle mask support which should help D60512 + D60562 llvm-svn: 358186
This commit is contained in:
parent
c3542e3376
commit
6d8eb7f280
@ -33234,8 +33234,8 @@ bool X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case X86ISD::PSHUFB:
|
case X86ISD::PSHUFB:
|
||||||
|
case X86ISD::VPERMV3:
|
||||||
case X86ISD::VPERMILPV: {
|
case X86ISD::VPERMILPV: {
|
||||||
// TODO - simplify other variable shuffle masks.
|
|
||||||
SDValue Mask = Op.getOperand(1);
|
SDValue Mask = Op.getOperand(1);
|
||||||
APInt MaskUndef, MaskZero;
|
APInt MaskUndef, MaskZero;
|
||||||
if (SimplifyDemandedVectorElts(Mask, DemandedElts, MaskUndef, MaskZero, TLO,
|
if (SimplifyDemandedVectorElts(Mask, DemandedElts, MaskUndef, MaskZero, TLO,
|
||||||
|
@ -933,10 +933,8 @@ define <8 x double> @combine_vpermi2var_8f64_as_permpd(<8 x double> %x0, <8 x do
|
|||||||
;
|
;
|
||||||
; X64-LABEL: combine_vpermi2var_8f64_as_permpd:
|
; X64-LABEL: combine_vpermi2var_8f64_as_permpd:
|
||||||
; X64: # %bb.0:
|
; X64: # %bb.0:
|
||||||
; X64-NEXT: vmovdqa {{.*#+}} xmm2 = <u,2,1,3,4,6,5,7>
|
; X64-NEXT: vmovapd {{.*#+}} zmm2 = <u,2,1,3,4,6,5,7>
|
||||||
; X64-NEXT: vpinsrq $0, %rdi, %xmm2, %xmm2
|
; X64-NEXT: vinsertf32x4 $0, {{.*}}(%rip), %zmm2, %zmm2
|
||||||
; X64-NEXT: vmovdqa64 {{.*#+}} zmm3 = <u,2,1,3,4,6,5,7>
|
|
||||||
; X64-NEXT: vinserti32x4 $0, %xmm2, %zmm3, %zmm2
|
|
||||||
; X64-NEXT: vpermi2pd %zmm1, %zmm0, %zmm2
|
; X64-NEXT: vpermi2pd %zmm1, %zmm0, %zmm2
|
||||||
; X64-NEXT: vpermpd {{.*#+}} zmm0 = zmm2[2,3,1,1,6,7,5,5]
|
; X64-NEXT: vpermpd {{.*#+}} zmm0 = zmm2[2,3,1,1,6,7,5,5]
|
||||||
; X64-NEXT: retq
|
; X64-NEXT: retq
|
||||||
|
Loading…
Reference in New Issue
Block a user