[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