[all-commits] [llvm/llvm-project] 59c3fe: [PowerPC] Exploit xxeval instruction for ternary p...
Tony Varghese via All-commits
all-commits at lists.llvm.org
Tue Jul 29 10:26:26 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 59c3fe65054fd3fb9be62ef326d1540cc375e913
https://github.com/llvm/llvm-project/commit/59c3fe65054fd3fb9be62ef326d1540cc375e913
Author: Tony Varghese <tonypalampalliyil at gmail.com>
Date: 2025-07-29 (Tue, 29 Jul 2025)
Changed paths:
M llvm/lib/Target/PowerPC/PPCInstrP10.td
M llvm/test/CodeGen/PowerPC/xxeval-vselect-x-and.ll
Log Message:
-----------
[PowerPC] Exploit xxeval instruction for ternary patterns - ternary(A, X, and(B,C)) (#141733)
## Description
<!--- Title/Description will be Subject/Body of commit message. -->
<!--- Please be concise and limit the subject line to 50 characters, -->
<!--- and wrap the Description at 72 characters. -->
<!--- Describe why this is required, what problem it solves. -->
Adds support for ternary equivalent operations of the form `ternary(A,
X, and(B,C))` where `X=[xor(B,C)| nor(B,C)| eqv(B,C)| not(B)| not(C)]`.
List of `xxeval` equivalent ternary operations added and the
corresponding `imm` value required:
Ternary Operator| Imm Value
--|--
ternary(A, xor(B,C), and(B,C)) | 22
ternary(A, nor(B,C), and(B,C)) | 24
ternary(A, eqv(B,C), and(B,C)) | 25
ternary(A, not(C), and(B,C)) | 26
ternary(A, not(B), and(B,C)) | 28
eg. `xxeval XT,XA,XB,XC,22`
- performs `XA ? xor(XB, XC) : and(XB,XC)`and places the result in `XT`.
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