[PATCH] D32416: [x86, SSE] AVX1 PR28129

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 24 08:50:04 PDT 2017


RKSimon added inline comments.


================
Comment at: lib/Target/X86/X86InstrSSE.td:7758
 def : Pat<(v8i32 immAllOnesV),
-          (VINSERTF128rr
-           (INSERT_SUBREG (v8i32 (IMPLICIT_DEF)), (V_SETALLONES), sub_xmm),
-           (V_SETALLONES), 1)>;
+          (VCMPPSYrri (AVX_SET0), (AVX_SET0), 15)>;
 
----------------
spatel wrote:
> It's not clear why we require a zero operand. Would a dummy (undef) register also work? Should we allow that when optimizing for size so the vxorps is not needed?
There isn't a fast path for vcmptrue (despite it ignoring the inputs) on Jaguar/SandyBridge - I mentioned in https://bugs.llvm.org/show_bug.cgi?id=28129#c8 that using undef vars causes dependency regressions. Zeroing the register breaks the dependency. 


https://reviews.llvm.org/D32416





More information about the llvm-commits mailing list