mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 20:29:48 +00:00
PTX: support for bitwise operations on predicates
- selection of bitwise preds (AND, OR, XOR) - new bitwise.ll test Patch by Dan Bailey git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130353 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9583a86ba8
commit
5a3cb924c6
@ -258,6 +258,14 @@ multiclass INT3<string opcstr, SDNode opnode> {
|
||||
}
|
||||
|
||||
multiclass PTX_LOGIC<string opcstr, SDNode opnode> {
|
||||
def ripreds : InstPTX<(outs Preds:$d),
|
||||
(ins Preds:$a, i1imm:$b),
|
||||
!strconcat(opcstr, ".pred\t$d, $a, $b"),
|
||||
[(set Preds:$d, (opnode Preds:$a, imm:$b))]>;
|
||||
def rrpreds : InstPTX<(outs Preds:$d),
|
||||
(ins Preds:$a, Preds:$b),
|
||||
!strconcat(opcstr, ".pred\t$d, $a, $b"),
|
||||
[(set Preds:$d, (opnode Preds:$a, Preds:$b))]>;
|
||||
def rr16 : InstPTX<(outs RRegu16:$d),
|
||||
(ins RRegu16:$a, RRegu16:$b),
|
||||
!strconcat(opcstr, ".b16\t$d, $a, $b"),
|
||||
|
24
test/CodeGen/PTX/bitwise.ll
Normal file
24
test/CodeGen/PTX/bitwise.ll
Normal file
@ -0,0 +1,24 @@
|
||||
; RUN: llc < %s -march=ptx32 | FileCheck %s
|
||||
|
||||
; preds
|
||||
|
||||
define ptx_device i32 @t1_and_preds(i1 %x, i1 %y) {
|
||||
; CHECK: and.pred p0, p1, p2
|
||||
%c = and i1 %x, %y
|
||||
%d = zext i1 %c to i32
|
||||
ret i32 %d
|
||||
}
|
||||
|
||||
define ptx_device i32 @t1_or_preds(i1 %x, i1 %y) {
|
||||
; CHECK: or.pred p0, p1, p2
|
||||
%a = or i1 %x, %y
|
||||
%b = zext i1 %a to i32
|
||||
ret i32 %b
|
||||
}
|
||||
|
||||
define ptx_device i32 @t1_xor_preds(i1 %x, i1 %y) {
|
||||
; CHECK: xor.pred p0, p1, p2
|
||||
%a = xor i1 %x, %y
|
||||
%b = zext i1 %a to i32
|
||||
ret i32 %b
|
||||
}
|
Loading…
Reference in New Issue
Block a user