• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -march=r600 -mcpu=cypress < %s | FileCheck -check-prefix=EG %s
2
3; EG-LABEL: {{^}}and_setcc_setcc_i32:
4; EG: AND_INT
5; EG-NEXT: SETE_INT
6define void @and_setcc_setcc_i32(i32 addrspace(1)* %out, i32 %a, i32 %b) {
7  %cmp1 = icmp eq i32 %a, -1
8  %cmp2 = icmp eq i32 %b, -1
9  %and = and i1 %cmp1, %cmp2
10  %ext = sext i1 %and to i32
11  store i32 %ext, i32 addrspace(1)* %out, align 4
12  ret void
13}
14
15; EG-LABEL: {{^}}and_setcc_setcc_v4i32:
16; EG: AND_INT
17; EG: AND_INT
18; EG: SETE_INT
19; EG: AND_INT
20; EG: SETE_INT
21; EG: AND_INT
22; EG: SETE_INT
23define void @and_setcc_setcc_v4i32(<4 x i32> addrspace(1)* %out, <4 x i32> %a, <4 x i32> %b) {
24  %cmp1 = icmp eq <4 x i32> %a, <i32 -1, i32 -1, i32 -1, i32 -1>
25  %cmp2 = icmp eq <4 x i32> %b, <i32 -1, i32 -1, i32 -1, i32 -1>
26  %and = and <4 x i1> %cmp1, %cmp2
27  %ext = sext <4 x i1> %and to <4 x i32>
28  store <4 x i32> %ext, <4 x i32> addrspace(1)* %out, align 4
29  ret void
30}
31