[PATCH] D45616: [X86] Lower _mm[256|512]_cmp[.]_mask intrinsics to native llvm IR

Eli Friedman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 11 14:26:31 PDT 2018


efriedma added inline comments.


================
Comment at: lib/CodeGen/CGBuiltin.cpp:10071
+      // is _MM_FROUND_CUR_DIRECTION
+      if (cast<llvm::ConstantInt>(Ops[4])->getZExtValue() != 4)
+        UsesNonDefaultRounding = true;
----------------
Given we're ignoring floating-point exceptions, we should also ignore the "rounding mode" operand (__MM_FROUND_NO_EXC only affects exceptions, and the other values are irrelevant because there isn't any actual rounding involved).


================
Comment at: lib/CodeGen/CGBuiltin.cpp:10156
 
-    // We can't handle 8-31 immediates with native IR, use the intrinsic.
-    // Except for predicates that create constants.
+    // These two must still use the intrinsic, when some interseting rounding
+    // mode is specified.
----------------
*interesting.


https://reviews.llvm.org/D45616





More information about the cfe-commits mailing list