diff options
| author | Chandler Carruth <chandlerc@gmail.com> | 2014-08-27 11:39:47 +0000 |
|---|---|---|
| committer | Chandler Carruth <chandlerc@gmail.com> | 2014-08-27 11:39:47 +0000 |
| commit | a5a8a9adc8d87199962a6486f8062a5f45dafac5 (patch) | |
| tree | dafb3eda108c686ed2b437967831f90708a39f37 /llvm/lib/Target/X86/X86ISelLowering.cpp | |
| parent | 74ec9e19eea510ae0079ce9366cb0ee6bebdd933 (diff) | |
| download | bcm5719-llvm-a5a8a9adc8d87199962a6486f8062a5f45dafac5.tar.gz bcm5719-llvm-a5a8a9adc8d87199962a6486f8062a5f45dafac5.zip | |
[x86] Fix a regression introduced with r213897 for 32-bit targets where
we stopped efficiently lowering sextload using the SSE41 instructions
for that operation.
This is a consequence of a bad predicate I used thinking of the memory
access needs. The code actually handles the cases where the predicate
doesn't apply, and handles them much better. =] Simple fix and a test
case added. Fixes PR20767.
llvm-svn: 216538
Diffstat (limited to 'llvm/lib/Target/X86/X86ISelLowering.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index f63beab44fd..8abbc1d4e1c 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -1016,10 +1016,8 @@ void X86TargetLowering::resetOperationActions() { // scalars) and extend in-register to a legal 128-bit vector type. For sext // loads these must work with a single scalar load. setLoadExtAction(ISD::SEXTLOAD, MVT::v4i8, Custom); - if (Subtarget->is64Bit()) { - setLoadExtAction(ISD::SEXTLOAD, MVT::v4i16, Custom); - setLoadExtAction(ISD::SEXTLOAD, MVT::v8i8, Custom); - } + setLoadExtAction(ISD::SEXTLOAD, MVT::v4i16, Custom); + setLoadExtAction(ISD::SEXTLOAD, MVT::v8i8, Custom); setLoadExtAction(ISD::EXTLOAD, MVT::v2i8, Custom); setLoadExtAction(ISD::EXTLOAD, MVT::v2i16, Custom); setLoadExtAction(ISD::EXTLOAD, MVT::v2i32, Custom); |

