xref: /llvm-project/llvm/test/CodeGen/NVPTX/boolean-patterns.ll (revision b279f6b098d3849f7f1c1f539b108307d5f8ae2d)
1; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s
2; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}
3
4; CHECK-LABEL: m2and_rr
5define i1 @m2and_rr(i1 %a, i1 %b) {
6; CHECK: and.pred %p{{[0-9]+}}, %p{{[0-9]+}}, %p{{[0-9]+}}
7; CHECK-NOT: mul
8  %r = mul i1 %a, %b
9  ret i1 %r
10}
11
12; CHECK-LABEL: m2and_ri
13define i1 @m2and_ri(i1 %a) {
14; CHECK-NOT: mul
15  %r = mul i1 %a, 1
16  ret i1 %r
17}
18
19; CHECK-LABEL: select2or
20define i1 @select2or(i1 %a, i1 %b) {
21; CHECK: or.b16 %rs{{[0-9]+}}, %rs{{[0-9]+}}, %rs{{[0-9]+}}
22; CHECK-NOT: selp
23  %r = select i1 %a, i1 1, i1 %b
24  ret i1 %r
25}
26
27; CHECK-LABEL: select2and
28define i1 @select2and(i1 %a, i1 %b) {
29; CHECK: and.b16 %rs{{[0-9]+}}, %rs{{[0-9]+}}, %rs{{[0-9]+}}
30; CHECK-NOT: selp
31  %r = select i1 %a, i1 %b, i1 0
32  ret i1 %r
33}
34