[PATCH] D72906: [X86] Improve X86 cmpps/cmppd/cmpss/cmpsd intrinsics with strictfp

Craig Topper via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Jan 29 15:20:56 PST 2020


craig.topper marked 2 inline comments as done.
craig.topper added inline comments.


================
Comment at: clang/lib/CodeGen/CGBuiltin.cpp:12363
+        Cmp = Builder.CreateFCmp(Pred, Ops[0], Ops[1]);
       return EmitX86MaskedCompareResult(*this, Cmp, NumElts, Ops[3]);
     }
----------------
andrew.w.kaylor wrote:
> How hard would it be to generate a select with known safe values ahead of the compare in the constrained case? 
Ultimately, I think we need target specific masked intrinsics or generic predicated compare intrinsics. Most of our X86 specific FP intrinsics are not exception correct because we aggressively removed masking when we probably shouldn't have.


================
Comment at: clang/test/CodeGen/avx-builtins-constrained.c:170
+  // CHECK-LABEL: test_mm256_cmp_pd_false_os
+  // CHECK: call <4 x double> @llvm.x86.avx.cmp.pd.256(<4 x double> %{{.*}}, <4 x double> %{{.*}}, i8 27)
+  return _mm256_cmp_pd(a, b, _CMP_FALSE_OS);
----------------
andrew.w.kaylor wrote:
> Does this have the strictfp attribute here? I don't think we do anything with that, but it will likely be useful when we start handling strictfp for target-specific intrinsics.
I don't think it does. We didn't create it with createConstrainedFPCall so I don't think anything would have added it.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D72906/new/

https://reviews.llvm.org/D72906





More information about the cfe-commits mailing list