[llvm] [SelectionDAG] Make `(a & x) | (~a & y) -> (a & (x ^ y)) ^ y` available for all targets (PR #137641)
Ulrich Weigand via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 29 01:13:45 PDT 2025
================
@@ -9,7 +9,9 @@ define i128 @f1(i128 %val1, i128 %val2) {
; CHECK: # %bb.0:
; CHECK-NEXT: vl %v0, 0(%r3), 3
; CHECK-NEXT: vl %v1, 0(%r4), 3
-; CHECK-NEXT: vmxq %v0, %v1, %v0
+; CHECK-NEXT: vchq %v2, %v1, %v0
+; CHECK-NEXT: vx %v1, %v1, %v0
+; CHECK-NEXT: veval %v0, %v0, %v1, %v2, 30
----------------
uweigand wrote:
The instruction is called VECTOR AND WITH COMPLEMENT (VNC). This (like all boolean instructions) implicitly supports any integer vector type.
https://github.com/llvm/llvm-project/pull/137641
More information about the llvm-commits
mailing list