[llvm] [AVX-512] make vpternlogq more aggressive for longer chains of bitmanipulations (PR #189971)

Julian Pokrovsky via llvm-commits llvm-commits at lists.llvm.org
Sat Sep 26 21:36:32 PDT 2026


================
@@ -15,11 +15,177 @@ define <8 x i64> @foo(<8 x i64> %a, <8 x i64> %b, <8 x i64> %c) {
 define <8 x i64> @xorbitcast(<64 x i8> %a, <64 x i8> %b, <64 x i8> %c) {
 ; CHECK-LABEL: xorbitcast:
 ; CHECK:       # %bb.0:
-; CHECK-NEXT:    vpternlogq {{.*#+}} zmm0 = ~(zmm0 | zmm2 | zmm1)
+; CHECK-NEXT:    vpternlogq {{.*#+}} zmm0 = ~(zmm0 | zmm1 | zmm2)
 ; CHECK-NEXT:    retq
   %or1 = or <64 x i8> %a, %b
   %or2 = or <64 x i8> %or1, %c
   %cast = bitcast <64 x i8> %or2 to <8 x i64>
   %xor = xor <8 x i64> %cast, splat (i64 -1)
   ret <8 x i64> %xor
 }
+
+; Two chained 3-input VPTERNLOGs (5 distinct inputs).
----------------
raventid wrote:

my bad, I will be more considerate about this 🙏 

https://github.com/llvm/llvm-project/pull/189971


More information about the llvm-commits mailing list