[all-commits] [llvm/llvm-project] 451af6: [X86] Remove combineVectorTruncation and delay gen...
Simon Pilgrim via All-commits
all-commits at lists.llvm.org
Thu Jul 13 03:30:00 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 451af635519113bc8fe94852d7489f26485f6689
https://github.com/llvm/llvm-project/commit/451af635519113bc8fe94852d7489f26485f6689
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2023-07-13 (Thu, 13 Jul 2023)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/psubus.ll
M llvm/test/CodeGen/X86/vector-trunc-packus.ll
M llvm/test/CodeGen/X86/vector-trunc-usat.ll
M llvm/test/CodeGen/X86/vector-trunc.ll
Log Message:
-----------
[X86] Remove combineVectorTruncation and delay general vector trunc to lowering
Stop folding vector truncations to PACKSS/PACKUS patterns prematurely - another step towards Issue #63710. We still prematurely fold to PACKSS/PACKUS if there are sufficient signbits, that will be addressed in a later patch when we remove combineVectorSignBitsTruncation.
This required ReplaceNodeResults to extend handling of sub-128-bit results to SSSE3 (or later) cases, which has allowed us to improve vXi32->vXi16 truncations to use PSHUFB.
I also tweaked LowerTruncateVecPack to recognise widened truncation source operands so the upper elements remain UNDEF (otherwise truncateVectorWithPACK* will constant fold them to allzeros/allones values).
More information about the All-commits
mailing list