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

Craig Topper via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jun 19 10:01:30 PDT 2018


craig.topper requested changes to this revision.
craig.topper added inline comments.
This revision now requires changes to proceed.


================
Comment at: test/CodeGen/avx-builtins.c:241
   // CHECK-LABEL: test_mm_cmp_sd
-  // CHECK: call <2 x double> @llvm.x86.sse2.cmp.sd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, i8 13)
+  // CHECK: [[CMP:%.*]] = fcmp oge <2 x double> %{{.*}}, %{{.*}}
   return _mm_cmp_sd(A, B, _CMP_GE_OS);
----------------
This doesn't look right. This is a scalar instructino it shoudl only be comparing a single double. There should be insertelementss and extractelements.


================
Comment at: test/CodeGen/avx512f-builtins.c:7449
   // CHECK-LABEL: @test_mm_cmp_round_ss_mask
-  // CHECK: @llvm.x86.avx512.mask.cmp
+  // CHECK: fcmp uge <4 x float> %{{.*}}, %{{.*}}
+  // CHECK: shufflevector <4 x i1> %{{.*}}, <4 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
----------------
I don't think this is right either.


https://reviews.llvm.org/D45616





More information about the cfe-commits mailing list