Skip to content

Commit 88249c6

Browse files
committed
pre-commit tests
1 parent f75dce4 commit 88249c6

File tree

2 files changed

+118
-0
lines changed

2 files changed

+118
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2+
; RUN: llc < %s -mtriple=nvptx64 | FileCheck %s
3+
; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 | %ptxas-verify %}
4+
5+
target triple = "nvptx64-nvidia-cuda"
6+
7+
define i1 @and_ord(float %a, float %b) {
8+
; CHECK-LABEL: and_ord(
9+
; CHECK: {
10+
; CHECK-NEXT: .reg .pred %p<4>;
11+
; CHECK-NEXT: .reg .b32 %r<2>;
12+
; CHECK-NEXT: .reg .f32 %f<3>;
13+
; CHECK-EMPTY:
14+
; CHECK-NEXT: // %bb.0:
15+
; CHECK-NEXT: ld.param.f32 %f1, [and_ord_param_0];
16+
; CHECK-NEXT: setp.num.f32 %p1, %f1, %f1;
17+
; CHECK-NEXT: ld.param.f32 %f2, [and_ord_param_1];
18+
; CHECK-NEXT: setp.num.f32 %p2, %f2, %f2;
19+
; CHECK-NEXT: and.pred %p3, %p1, %p2;
20+
; CHECK-NEXT: selp.b32 %r1, 1, 0, %p3;
21+
; CHECK-NEXT: st.param.b32 [func_retval0], %r1;
22+
; CHECK-NEXT: ret;
23+
%c = fcmp ord float %a, 0.0
24+
%d = fcmp ord float %b, 0.0
25+
%e = and i1 %c, %d
26+
ret i1 %e
27+
}
28+
29+
define i1 @or_uno(float %a, float %b) {
30+
; CHECK-LABEL: or_uno(
31+
; CHECK: {
32+
; CHECK-NEXT: .reg .pred %p<4>;
33+
; CHECK-NEXT: .reg .b32 %r<2>;
34+
; CHECK-NEXT: .reg .f32 %f<3>;
35+
; CHECK-EMPTY:
36+
; CHECK-NEXT: // %bb.0:
37+
; CHECK-NEXT: ld.param.f32 %f1, [or_uno_param_0];
38+
; CHECK-NEXT: setp.nan.f32 %p1, %f1, %f1;
39+
; CHECK-NEXT: ld.param.f32 %f2, [or_uno_param_1];
40+
; CHECK-NEXT: setp.nan.f32 %p2, %f2, %f2;
41+
; CHECK-NEXT: or.pred %p3, %p1, %p2;
42+
; CHECK-NEXT: selp.b32 %r1, 1, 0, %p3;
43+
; CHECK-NEXT: st.param.b32 [func_retval0], %r1;
44+
; CHECK-NEXT: ret;
45+
%c = fcmp uno float %a, 0.0
46+
%d = fcmp uno float %b, 0.0
47+
%e = or i1 %c, %d
48+
ret i1 %e
49+
}

llvm/test/CodeGen/X86/and-or-setcc.ll

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2+
; RUN: llc < %s -mtriple=i686-unknown-unknown | FileCheck %s --check-prefix=X86
3+
; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s --check-prefix=X64
4+
5+
define i1 @and_ord(float %a, float %b) {
6+
; X86-LABEL: and_ord:
7+
; X86: # %bb.0:
8+
; X86-NEXT: flds {{[0-9]+}}(%esp)
9+
; X86-NEXT: flds {{[0-9]+}}(%esp)
10+
; X86-NEXT: fucomp %st(0)
11+
; X86-NEXT: fnstsw %ax
12+
; X86-NEXT: # kill: def $ah killed $ah killed $ax
13+
; X86-NEXT: sahf
14+
; X86-NEXT: setnp %cl
15+
; X86-NEXT: fucomp %st(0)
16+
; X86-NEXT: fnstsw %ax
17+
; X86-NEXT: # kill: def $ah killed $ah killed $ax
18+
; X86-NEXT: sahf
19+
; X86-NEXT: setnp %al
20+
; X86-NEXT: andb %cl, %al
21+
; X86-NEXT: retl
22+
;
23+
; X64-LABEL: and_ord:
24+
; X64: # %bb.0:
25+
; X64-NEXT: xorps %xmm2, %xmm2
26+
; X64-NEXT: cmpordps %xmm2, %xmm1
27+
; X64-NEXT: cmpordps %xmm2, %xmm0
28+
; X64-NEXT: andps %xmm1, %xmm0
29+
; X64-NEXT: movd %xmm0, %eax
30+
; X64-NEXT: # kill: def $al killed $al killed $eax
31+
; X64-NEXT: retq
32+
%c = fcmp ord float %a, 0.0
33+
%d = fcmp ord float %b, 0.0
34+
%e = and i1 %c, %d
35+
ret i1 %e
36+
}
37+
38+
define i1 @or_uno(float %a, float %b) {
39+
; X86-LABEL: or_uno:
40+
; X86: # %bb.0:
41+
; X86-NEXT: flds {{[0-9]+}}(%esp)
42+
; X86-NEXT: flds {{[0-9]+}}(%esp)
43+
; X86-NEXT: fucomp %st(0)
44+
; X86-NEXT: fnstsw %ax
45+
; X86-NEXT: # kill: def $ah killed $ah killed $ax
46+
; X86-NEXT: sahf
47+
; X86-NEXT: setp %cl
48+
; X86-NEXT: fucomp %st(0)
49+
; X86-NEXT: fnstsw %ax
50+
; X86-NEXT: # kill: def $ah killed $ah killed $ax
51+
; X86-NEXT: sahf
52+
; X86-NEXT: setp %al
53+
; X86-NEXT: orb %cl, %al
54+
; X86-NEXT: retl
55+
;
56+
; X64-LABEL: or_uno:
57+
; X64: # %bb.0:
58+
; X64-NEXT: xorps %xmm2, %xmm2
59+
; X64-NEXT: cmpunordps %xmm2, %xmm1
60+
; X64-NEXT: cmpunordps %xmm2, %xmm0
61+
; X64-NEXT: orps %xmm1, %xmm0
62+
; X64-NEXT: movd %xmm0, %eax
63+
; X64-NEXT: # kill: def $al killed $al killed $eax
64+
; X64-NEXT: retq
65+
%c = fcmp uno float %a, 0.0
66+
%d = fcmp uno float %b, 0.0
67+
%e = or i1 %c, %d
68+
ret i1 %e
69+
}

0 commit comments

Comments
 (0)