[PATCH] D18866: [X86] Fix PR23155 by turning on X86FixupBWInsts by default
Kevin B. Smith via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 7 13:52:14 PDT 2016
kbsmith1 created this revision.
kbsmith1 added reviewers: spatel, qcolombet.
kbsmith1 added a subscriber: llvm-commits.
This fixes PR23155 by turning on the X86FixupBWInst optimization by default,
and modifies the few tests that are affected by this. The X86FixupBWInst optimization
already has its unit tests, which were checked in with its initial commit.
http://reviews.llvm.org/D18866
Files:
lib/Target/X86/X86FixupBWInsts.cpp
test/CodeGen/X86/anyext.ll
test/CodeGen/X86/avx512bw-intrinsics.ll
test/CodeGen/X86/merge-store-partially-alias-loads.ll
Index: lib/Target/X86/X86FixupBWInsts.cpp
===================================================================
--- lib/Target/X86/X86FixupBWInsts.cpp
+++ lib/Target/X86/X86FixupBWInsts.cpp
@@ -68,7 +68,7 @@
static cl::opt<bool>
FixupBWInsts("fixup-byte-word-insts",
cl::desc("Change byte and word instructions to larger sizes"),
- cl::init(false), cl::Hidden);
+ cl::init(true), cl::Hidden);
namespace {
class FixupBWInstPass : public MachineFunctionPass {
Index: test/CodeGen/X86/merge-store-partially-alias-loads.ll
===================================================================
--- test/CodeGen/X86/merge-store-partially-alias-loads.ll
+++ test/CodeGen/X86/merge-store-partially-alias-loads.ll
@@ -6,10 +6,10 @@
; they must not be placed on the same chain after merging.
; X86-LABEL: {{^}}merge_store_partial_overlap_load:
-; X86-DAG: movw ([[BASEREG:%[a-z]+]]), [[LO2:%[a-z]+]]
+; X86-DAG: movzwl ([[BASEREG:%[a-z]+]]), %e[[LO2:[a-z]+]]
; X86-DAG: movb 2([[BASEREG]]), [[HI1:%[a-z]+]]
-; X86-NEXT: movw [[LO2]], 1([[BASEREG]])
+; X86-NEXT: movw %[[LO2]], 1([[BASEREG]])
; X86-NEXT: movb [[HI1]], 3([[BASEREG]])
; X86-NEXT: retq
Index: test/CodeGen/X86/avx512bw-intrinsics.ll
===================================================================
--- test/CodeGen/X86/avx512bw-intrinsics.ll
+++ test/CodeGen/X86/avx512bw-intrinsics.ll
@@ -3565,7 +3565,7 @@
;
; AVX512F-32-LABEL: test_int_x86_avx512_mask_pbroadcast_w_gpr_512:
; AVX512F-32: # BB#0:
-; AVX512F-32-NEXT: movw {{[0-9]+}}(%esp), %ax
+; AVX512F-32-NEXT: movzwl {{[0-9]+}}(%esp), %eax
; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
; AVX512F-32-NEXT: vpbroadcastw %ax, %zmm0 {%k1}
; AVX512F-32-NEXT: vpbroadcastw %ax, %zmm1 {%k1} {z}
Index: test/CodeGen/X86/anyext.ll
===================================================================
--- test/CodeGen/X86/anyext.ll
+++ test/CodeGen/X86/anyext.ll
@@ -30,7 +30,7 @@
define i32 @bar(i32 %p, i16 zeroext %x) nounwind {
; X32-LABEL: bar:
; X32: # BB#0:
-; X32-NEXT: movw {{[0-9]+}}(%esp), %ax
+; X32-NEXT: movzwl {{[0-9]+}}(%esp), %eax
; X32-NEXT: xorl %edx, %edx
; X32-NEXT: divw {{[0-9]+}}(%esp)
; X32-NEXT: andl $1, %eax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18866.52952.patch
Type: text/x-patch
Size: 2260 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160407/1849df08/attachment.bin>
More information about the llvm-commits
mailing list