Skip to content

Commit 8949290

Browse files
committed
[X86] SimplifyDemandedVectorEltsForTargetNode - reduce width of X86ISD::BLENDV nodes when upper elements are not demanded.
Prep work for #83402
1 parent 4915fdd commit 8949290

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

llvm/lib/Target/X86/X86ISelLowering.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42521,6 +42521,8 @@ bool X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(
4252142521
}
4252242522
// Zero upper elements.
4252342523
case X86ISD::VZEXT_MOVL:
42524+
// Variable blend.
42525+
case X86ISD::BLENDV:
4252442526
// Target unary shuffles by immediate:
4252542527
case X86ISD::PSHUFD:
4252642528
case X86ISD::PSHUFLW:

llvm/test/CodeGen/X86/vector-half-conversions.ll

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5217,9 +5217,8 @@ define <4 x i32> @fptoui_4f16_to_4i32(<4 x half> %a) nounwind {
52175217
; F16C-NEXT: vcvttps2dq %ymm0, %ymm1
52185218
; F16C-NEXT: vsubps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
52195219
; F16C-NEXT: vcvttps2dq %ymm0, %ymm0
5220-
; F16C-NEXT: vorps %ymm0, %ymm1, %ymm0
5221-
; F16C-NEXT: vblendvps %ymm1, %ymm0, %ymm1, %ymm0
5222-
; F16C-NEXT: # kill: def $xmm0 killed $xmm0 killed $ymm0
5220+
; F16C-NEXT: vorps %xmm0, %xmm1, %xmm0
5221+
; F16C-NEXT: vblendvps %xmm1, %xmm0, %xmm1, %xmm0
52235222
; F16C-NEXT: vzeroupper
52245223
; F16C-NEXT: retq
52255224
;

0 commit comments

Comments
 (0)