[CostModel][X86] Pre-SSE41 targets can use PMADDWD for sext sub-i16 -> i32
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 14 Oct 2021 11:17:28 +0000 (12:17 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 14 Oct 2021 11:17:40 +0000 (12:17 +0100)
commit77dcdc2f50cca2e2b9025a1575ba8a5ebbe03542
treeb1c6b2e039d671eb95651df8e5dd3a3ce90c59e1
parent16729d0f62749b2e5e479dfd575f1dd90ff74bbd
[CostModel][X86] Pre-SSE41 targets can use PMADDWD for sext sub-i16 -> i32

Without SSE41 sext/zext instructions the extensions will be split, meaning that the MUL->PMADDWD fold will split the sext_i32(x) into zext_i32(sext_i16(x))
llvm/lib/Target/X86/X86TargetTransformInfo.cpp
llvm/test/Analysis/CostModel/X86/mul32.ll