[llvm] r278229 - use different comparison predicates for better test coverage

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 10 08:06:11 PDT 2016


Author: spatel
Date: Wed Aug 10 10:06:11 2016
New Revision: 278229

URL: http://llvm.org/viewvc/llvm-project?rev=278229&view=rev
Log:
use different comparison predicates for better test coverage

Modified:
    llvm/trunk/test/CodeGen/X86/select-with-and-or.ll

Modified: llvm/trunk/test/CodeGen/X86/select-with-and-or.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/select-with-and-or.ll?rev=278229&r1=278228&r2=278229&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/select-with-and-or.ll (original)
+++ llvm/trunk/test/CodeGen/X86/select-with-and-or.ll Wed Aug 10 10:06:11 2016
@@ -84,18 +84,17 @@ define <4 x i32> @test7(<4 x float> %a,
   ret <4 x i32> %r
 }
 
-; FIXME: None of these should use vblendvpd.
-; Repeat all with FP types.
+; Repeat all with FP types for the select operands. Also, use different comparison predicates for better test coverage.
 
 define <2 x double> @test1f(<2 x double> %a, <2 x double> %b, <2 x double> %c) {
 ; CHECK-LABEL: test1f:
 ; CHECK:       # BB#0:
-; CHECK-NEXT:    vcmpnlepd %xmm0, %xmm1, %xmm0
+; CHECK-NEXT:    vcmpltpd %xmm0, %xmm1, %xmm0
 ; CHECK-NEXT:    vxorpd %xmm1, %xmm1, %xmm1
 ; CHECK-NEXT:    vblendvpd %xmm0, %xmm2, %xmm1, %xmm0
 ; CHECK-NEXT:    retq
 ;
-  %f = fcmp ult <2 x double> %a, %b
+  %f = fcmp ogt <2 x double> %a, %b
   %r = select <2 x i1> %f, <2 x double> %c, <2 x double> zeroinitializer
   ret <2 x double> %r
 }
@@ -103,12 +102,12 @@ define <2 x double> @test1f(<2 x double>
 define <2 x double> @test2f(<2 x double> %a, <2 x double> %b, <2 x double> %c) {
 ; CHECK-LABEL: test2f:
 ; CHECK:       # BB#0:
-; CHECK-NEXT:    vcmpnlepd %xmm0, %xmm1, %xmm0
+; CHECK-NEXT:    vcmplepd %xmm0, %xmm1, %xmm0
 ; CHECK-NEXT:    vpcmpeqd %xmm1, %xmm1, %xmm1
 ; CHECK-NEXT:    vblendvpd %xmm0, %xmm1, %xmm2, %xmm0
 ; CHECK-NEXT:    retq
 ;
-  %f = fcmp ult <2 x double> %a, %b
+  %f = fcmp oge <2 x double> %a, %b
   %r = select <2 x i1> %f, <2 x double> <double 0xffffffffffffffff, double 0xffffffffffffffff>, <2 x double> %c
   ret <2 x double> %r
 }
@@ -116,12 +115,12 @@ define <2 x double> @test2f(<2 x double>
 define <2 x double> @test3f(<2 x double> %a, <2 x double> %b, <2 x double> %c) {
 ; CHECK-LABEL: test3f:
 ; CHECK:       # BB#0:
-; CHECK-NEXT:    vcmpnlepd %xmm0, %xmm1, %xmm0
+; CHECK-NEXT:    vcmpltpd %xmm1, %xmm0, %xmm0
 ; CHECK-NEXT:    vxorpd %xmm1, %xmm1, %xmm1
 ; CHECK-NEXT:    vblendvpd %xmm0, %xmm1, %xmm2, %xmm0
 ; CHECK-NEXT:    retq
 ;
-  %f = fcmp ult <2 x double> %a, %b
+  %f = fcmp olt <2 x double> %a, %b
   %r = select <2 x i1> %f, <2 x double> zeroinitializer, <2 x double> %c
   ret <2 x double> %r
 }
@@ -129,12 +128,12 @@ define <2 x double> @test3f(<2 x double>
 define <2 x double> @test4f(<2 x double> %a, <2 x double> %b, <2 x double> %c) {
 ; CHECK-LABEL: test4f:
 ; CHECK:       # BB#0:
-; CHECK-NEXT:    vcmpnlepd %xmm0, %xmm1, %xmm0
+; CHECK-NEXT:    vcmplepd %xmm1, %xmm0, %xmm0
 ; CHECK-NEXT:    vpcmpeqd %xmm1, %xmm1, %xmm1
 ; CHECK-NEXT:    vblendvpd %xmm0, %xmm2, %xmm1, %xmm0
 ; CHECK-NEXT:    retq
 ;
-  %f = fcmp ult <2 x double> %a, %b
+  %f = fcmp ole <2 x double> %a, %b
   %r = select <2 x i1> %f, <2 x double> %c, <2 x double> <double 0xffffffffffffffff, double 0xffffffffffffffff>
   ret <2 x double> %r
 }
@@ -142,13 +141,13 @@ define <2 x double> @test4f(<2 x double>
 define <2 x double> @test5f(<2 x double> %a, <2 x double> %b, <2 x double> %c) {
 ; CHECK-LABEL: test5f:
 ; CHECK:       # BB#0:
-; CHECK-NEXT:    vcmpnlepd %xmm0, %xmm1, %xmm0
+; CHECK-NEXT:    vcmpnlepd %xmm1, %xmm0, %xmm0
 ; CHECK-NEXT:    vpcmpeqd %xmm1, %xmm1, %xmm1
 ; CHECK-NEXT:    vxorpd %xmm2, %xmm2, %xmm2
 ; CHECK-NEXT:    vblendvpd %xmm0, %xmm1, %xmm2, %xmm0
 ; CHECK-NEXT:    retq
 ;
-  %f = fcmp ult <2 x double> %a, %b
+  %f = fcmp ugt <2 x double> %a, %b
   %r = select <2 x i1> %f, <2 x double> <double 0xffffffffffffffff, double 0xffffffffffffffff>, <2 x double> zeroinitializer
   ret <2 x double> %r
 }
@@ -156,13 +155,13 @@ define <2 x double> @test5f(<2 x double>
 define <2 x double> @test6f(<2 x double> %a, <2 x double> %b, <2 x double> %c) {
 ; CHECK-LABEL: test6f:
 ; CHECK:       # BB#0:
-; CHECK-NEXT:    vcmpnlepd %xmm0, %xmm1, %xmm0
+; CHECK-NEXT:    vcmpnltpd %xmm0, %xmm1, %xmm0
 ; CHECK-NEXT:    vxorpd %xmm1, %xmm1, %xmm1
 ; CHECK-NEXT:    vpcmpeqd %xmm2, %xmm2, %xmm2
 ; CHECK-NEXT:    vblendvpd %xmm0, %xmm1, %xmm2, %xmm0
 ; CHECK-NEXT:    retq
 ;
-  %f = fcmp ult <2 x double> %a, %b
+  %f = fcmp ule <2 x double> %a, %b
   %r = select <2 x i1> %f, <2 x double> zeroinitializer, <2 x double> <double 0xffffffffffffffff, double 0xffffffffffffffff>
   ret <2 x double> %r
 }
@@ -170,12 +169,12 @@ define <2 x double> @test6f(<2 x double>
 define <2 x double> @test7f(<2 x double> %a, <2 x double> %b, <2 x double>* %p) {
 ; CHECK-LABEL: test7f:
 ; CHECK:       # BB#0:
-; CHECK-NEXT:    vcmpnlepd %xmm0, %xmm1, %xmm0
+; CHECK-NEXT:    vcmpeqpd %xmm1, %xmm0, %xmm0
 ; CHECK-NEXT:    vxorpd %xmm1, %xmm1, %xmm1
 ; CHECK-NEXT:    vblendvpd %xmm0, (%rdi), %xmm1, %xmm0
 ; CHECK-NEXT:    retq
 ;
-  %f = fcmp ult <2 x double> %a, %b
+  %f = fcmp oeq <2 x double> %a, %b
   %l = load <2 x double>, <2 x double>* %p, align 16
   %r = select <2 x i1> %f, <2 x double> %l, <2 x double> zeroinitializer
   ret <2 x double> %r




More information about the llvm-commits mailing list