diff options
author | Sanjay Patel <spatel@rotateright.com> | 2014-08-28 18:59:22 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2014-08-28 18:59:22 +0000 |
commit | 81ecbb0737d28a493b7ea2a42c2336721c6e0ea1 (patch) | |
tree | 96a9506f99d84eb3ec4c7343cdd162da87164059 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 3eb910b4041d51f80f94216651fd274c6416246e (diff) | |
download | llvm-81ecbb0737d28a493b7ea2a42c2336721c6e0ea1.zip llvm-81ecbb0737d28a493b7ea2a42c2336721c6e0ea1.tar.gz llvm-81ecbb0737d28a493b7ea2a42c2336721c6e0ea1.tar.bz2 |
Fix a logic bug in x86 vector codegen: sext (zext (x) ) != sext (x) (PR20472).
Remove a block of code from LowerSIGN_EXTEND_INREG() that was added with:
http://llvm.org/viewvc/llvm-project?view=revision&revision=177421
And caused:
http://llvm.org/bugs/show_bug.cgi?id=20472 (more analysis here)
http://llvm.org/bugs/show_bug.cgi?id=18054
The testcases confirm that we (1) don't remove a zext op that is necessary and (2) generate
a pmovz instead of punpck if SSE4.1 is available. Although pmovz is 1 byte longer, it allows
folding of the load, and so saves 3 bytes overall.
Differential Revision: http://reviews.llvm.org/D4909
llvm-svn: 216679
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions