[llvm] bf5a31b - [X86] Pre-commit test cases for D109295. NFC

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 6 10:30:40 PDT 2021


Author: Craig Topper
Date: 2021-09-06T10:22:48-07:00
New Revision: bf5a31bb9a900b5b2dcc1e035e426a5dbd9ba9a2

URL: https://github.com/llvm/llvm-project/commit/bf5a31bb9a900b5b2dcc1e035e426a5dbd9ba9a2
DIFF: https://github.com/llvm/llvm-project/commit/bf5a31bb9a900b5b2dcc1e035e426a5dbd9ba9a2.diff

LOG: [X86] Pre-commit test cases for D109295. NFC

Added: 
    

Modified: 
    llvm/test/CodeGen/X86/avx512vl-logic.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/X86/avx512vl-logic.ll b/llvm/test/CodeGen/X86/avx512vl-logic.ll
index 72de9adcbd36..e7bbe2d3fce9 100644
--- a/llvm/test/CodeGen/X86/avx512vl-logic.ll
+++ b/llvm/test/CodeGen/X86/avx512vl-logic.ll
@@ -977,6 +977,55 @@ define <4 x i32> @ternlog_or_andn(<4 x i32> %x, <4 x i32> %y, <4 x i32> %z) {
   ret <4 x i32> %c
 }
 
+define <4 x i32> @ternlog_and_orn(<4 x i32> %x, <4 x i32> %y, <4 x i32> %z) {
+; CHECK-LABEL: ternlog_and_orn:
+; CHECK:       ## %bb.0:
+; CHECK-NEXT:    vpternlogq $15, %xmm2, %xmm2, %xmm2
+; CHECK-NEXT:    vpternlogd $224, %xmm1, %xmm2, %xmm0
+; CHECK-NEXT:    retq
+  %a = xor <4 x i32> %z, <i32 -1, i32 -1, i32 -1, i32 -1>
+  %b = or <4 x i32> %a, %y
+  %c = and <4 x i32> %b, %x
+  ret <4 x i32> %c
+}
+
+define <4 x i32> @ternlog_and_orn_2(<4 x i32> %x, <4 x i32> %y, <4 x i32> %z) {
+; CHECK-LABEL: ternlog_and_orn_2:
+; CHECK:       ## %bb.0:
+; CHECK-NEXT:    vpternlogq $15, %xmm2, %xmm2, %xmm2
+; CHECK-NEXT:    vpternlogd $224, %xmm2, %xmm1, %xmm0
+; CHECK-NEXT:    retq
+  %a = xor <4 x i32> %z, <i32 -1, i32 -1, i32 -1, i32 -1>
+  %b = or <4 x i32> %y, %a
+  %c = and <4 x i32> %b, %x
+  ret <4 x i32> %c
+}
+
+define <4 x i32> @ternlog_orn_and(<4 x i32> %x, <4 x i32> %y, <4 x i32> %z) {
+; CHECK-LABEL: ternlog_orn_and:
+; CHECK:       ## %bb.0:
+; CHECK-NEXT:    vpcmpeqd %xmm3, %xmm3, %xmm3
+; CHECK-NEXT:    vpand %xmm2, %xmm1, %xmm1
+; CHECK-NEXT:    vpternlogd $222, %xmm3, %xmm1, %xmm0
+; CHECK-NEXT:    retq
+  %a = xor <4 x i32> %x, <i32 -1, i32 -1, i32 -1, i32 -1>
+  %b = and <4 x i32> %y, %z
+  %c = or <4 x i32> %b, %a
+  ret <4 x i32> %c
+}
+
+define <4 x i32> @ternlog_orn_and_2(<4 x i32> %x, <4 x i32> %y, <4 x i32> %z) {
+; CHECK-LABEL: ternlog_orn_and_2:
+; CHECK:       ## %bb.0:
+; CHECK-NEXT:    vpternlogq $15, %xmm0, %xmm0, %xmm0
+; CHECK-NEXT:    vpternlogd $248, %xmm2, %xmm1, %xmm0
+; CHECK-NEXT:    retq
+  %a = xor <4 x i32> %x, <i32 -1, i32 -1, i32 -1, i32 -1>
+  %b = and <4 x i32> %y, %z
+  %c = or <4 x i32> %a, %b
+  ret <4 x i32> %c
+}
+
 define <4 x i32> @ternlog_xor_andn(<4 x i32> %x, <4 x i32> %y, <4 x i32> %z) {
 ; CHECK-LABEL: ternlog_xor_andn:
 ; CHECK:       ## %bb.0:


        


More information about the llvm-commits mailing list