[PATCH] D11428: Improve EmitLoweredSelect for contiguous pseudo CMOV instructions.

Ahmed Bougacha ahmed.bougacha at gmail.com
Wed Aug 5 10:40:30 PDT 2015


ab accepted this revision.
ab added a comment.
This revision is now accepted and ready to land.

I'd still prefer tests with only -NEXT from the label to the ret, but this LGTM as is, thanks!

-Ahmed


================
Comment at: lib/Target/X86/X86ISelLowering.cpp:19858
@@ +19857,3 @@
+  //
+  // when rewrting this into PHIs, we have to perform some renaming on the
+  // temps since you cannot have a PHI operand refer to a PHI result earlier
----------------
rewrting -> rewriting

================
Comment at: test/CodeGen/X86/pseudo_cmov_lower.ll:218-223
@@ +217,8 @@
+; CMOV_V8I1, CMOV_V16I1, CMOV_V32I1, or CMOV_V64I1.  Instead the selects all
+; get lowered into vector length number of selects, which all eventually turn
+; into a huge number of CMOV_GR8, which are all contiguous, so the optimization
+; kicks in as long as CMOV_GR8 is supported. I couldn't find a way to get
+; CMOV_V*I1 pseudo-opcodes to get generated.
+;
+; CHECK-LABEL: foo9:
+; CHECK: ja
----------------
If this test isn't actually testing CMOV_VNI1, should it be removed?


http://reviews.llvm.org/D11428





More information about the llvm-commits mailing list