[all-commits] [llvm/llvm-project] 30010f: [NFC][PowerPC] Pre-commit testcases for locking do...

Tony Varghese via All-commits all-commits at lists.llvm.org
Thu Sep 11 21:06:58 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 30010f49ca4de03762a31202c82e9c763d4a8822
      https://github.com/llvm/llvm-project/commit/30010f49ca4de03762a31202c82e9c763d4a8822
  Author: Tony Varghese <tonypalampalliyil at gmail.com>
  Date:   2025-09-12 (Fri, 12 Sep 2025)

  Changed paths:
    A llvm/test/CodeGen/PowerPC/xxeval-vselect-x-eqv.ll
    A llvm/test/CodeGen/PowerPC/xxeval-vselect-x-nand.ll
    A llvm/test/CodeGen/PowerPC/xxeval-vselect-x-nor.ll
    A llvm/test/CodeGen/PowerPC/xxeval-vselect-x-not-b.ll
    A llvm/test/CodeGen/PowerPC/xxeval-vselect-x-not-c.ll

  Log Message:
  -----------
  [NFC][PowerPC] Pre-commit testcases for locking down the xxsel instructions for ternary(A, X, eqv(B,C)), ternary(A, X, not(C)), ternary(A, X, not(B)), ternary(A, X, nand(B,C)) and ternary(A, X, nor(B,C)) patterns (#158091)

Pre-commit test case for exploitation of `xxsel` for ternary operations
of the pattern. This adds support for v4i32, v2i64, v16i8 and v8i16
operand types for the following patterns.

The following are the patterns involved in the change:
```
ternary(A,  and(B,C),   nor(B,C))
ternary(A,  B,          nor(B,C))
ternary(A,  C,          nor(B,C))
ternary(A,  xor(B,C),   nor(B,C))
ternary(A,  not(C),     nor(B,C))
ternary(A,  not(B),     nor(B,C))
ternary(A,  nand(B,C),  nor(B,C))

ternary(A,  or(B,C),    eqv(B,C))
ternary(A,  nor(B,C),   eqv(B,C))
ternary(A,  not(C),     eqv(B,C))
ternary(A,  nand(B,C),  eqv(B,C))

ternary(A,  and(B,C),   not(C))	   
ternary(A,  B,          not(C))	   
ternary(A,  xor(B,C),   not(C))	   
ternary(A,  or(B,C),    not(C))	   
ternary(A,  not(B),     not(C))	   
ternary(A,  nand(B,C),  not(C))	   

ternary(A,  and(B,C),   not(B))	   
ternary(A,  xor(B,C),   not(B))	   
ternary(A,  or(B,C),    not(B))	   
ternary(A,  nand(B,C),  not(B))	   

ternary(A,  B,          nand(B,C))
ternary(A,  C,          nand(B,C))
ternary(A,  xor(B,C),   nand(B,C))
ternary(A,  or(B,C),    nand(B,C))
ternary(A,  eqv(B,C),   nand(B,C))
```
Exploitation of `xxeval` for the above patterns to be added as a follow
up.

Co-authored-by: Tony Varghese <tony.varghese at ibm.com>



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list