1; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s
2
3define signext i8 @func8s(i8 signext %a, i8 signext %b) {
4; CHECK-LABEL: func8s:
5; CHECK:       # %bb.0:
6; CHECK-NEXT:    xor %s0, %s0, %s1
7; CHECK-NEXT:    b.l.t (, %s10)
8  %res = xor i8 %a, %b
9  ret i8 %res
10}
11
12define zeroext i8 @func8z(i8 zeroext %a, i8 zeroext %b) {
13; CHECK-LABEL: func8z:
14; CHECK:       # %bb.0:
15; CHECK-NEXT:    xor %s0, %s1, %s0
16; CHECK-NEXT:    b.l.t (, %s10)
17  %res = xor i8 %b, %a
18  ret i8 %res
19}
20
21define signext i8 @funci8s(i8 signext %a) {
22; CHECK-LABEL: funci8s:
23; CHECK:       # %bb.0:
24; CHECK-NEXT:    xor %s0, 5, %s0
25; CHECK-NEXT:    b.l.t (, %s10)
26  %res = xor i8 %a, 5
27  ret i8 %res
28}
29
30define zeroext i8 @funci8z(i8 zeroext %a) {
31; CHECK-LABEL: funci8z:
32; CHECK:       # %bb.0:
33; CHECK-NEXT:    lea %s1, 251
34; CHECK-NEXT:    xor %s0, %s0, %s1
35; CHECK-NEXT:    b.l.t (, %s10)
36  %res = xor i8 -5, %a
37  ret i8 %res
38}
39
40define signext i16 @func16s(i16 signext %a, i16 signext %b) {
41; CHECK-LABEL: func16s:
42; CHECK:       # %bb.0:
43; CHECK-NEXT:    xor %s0, %s0, %s1
44; CHECK-NEXT:    b.l.t (, %s10)
45  %res = xor i16 %a, %b
46  ret i16 %res
47}
48
49define zeroext i16 @func16z(i16 zeroext %a, i16 zeroext %b) {
50; CHECK-LABEL: func16z:
51; CHECK:       # %bb.0:
52; CHECK-NEXT:    xor %s0, %s1, %s0
53; CHECK-NEXT:    b.l.t (, %s10)
54  %res = xor i16 %b, %a
55  ret i16 %res
56}
57
58define signext i16 @funci16s(i16 signext %a) {
59; CHECK-LABEL: funci16s:
60; CHECK:       # %bb.0:
61; CHECK-NEXT:    xor %s0, -1, %s0
62; CHECK-NEXT:    b.l.t (, %s10)
63  %res = xor i16 %a, 65535
64  ret i16 %res
65}
66
67define zeroext i16 @funci16z(i16 zeroext %a) {
68; CHECK-LABEL: funci16z:
69; CHECK:       # %bb.0:
70; CHECK-NEXT:    xor %s0, %s0, (52)0
71; CHECK-NEXT:    b.l.t (, %s10)
72  %res = xor i16 4095, %a
73  ret i16 %res
74}
75
76define signext i32 @func32s(i32 signext %a, i32 signext %b) {
77; CHECK-LABEL: func32s:
78; CHECK:       # %bb.0:
79; CHECK-NEXT:    xor %s0, %s0, %s1
80; CHECK-NEXT:    b.l.t (, %s10)
81  %res = xor i32 %a, %b
82  ret i32 %res
83}
84
85define zeroext i32 @func32z(i32 zeroext %a, i32 zeroext %b) {
86; CHECK-LABEL: func32z:
87; CHECK:       # %bb.0:
88; CHECK-NEXT:    xor %s0, %s0, %s1
89; CHECK-NEXT:    b.l.t (, %s10)
90  %res = xor i32 %a, %b
91  ret i32 %res
92}
93
94define signext i32 @funci32s(i32 signext %a) {
95; CHECK-LABEL: funci32s:
96; CHECK:       # %bb.0:
97; CHECK-NEXT:    xor %s0, %s0, (36)0
98; CHECK-NEXT:    b.l.t (, %s10)
99  %res = xor i32 %a, 268435455
100  ret i32 %res
101}
102
103define zeroext i32 @funci32z(i32 zeroext %a) {
104; CHECK-LABEL: funci32z:
105; CHECK:       # %bb.0:
106; CHECK-NEXT:    xor %s0, %s0, (36)0
107; CHECK-NEXT:    b.l.t (, %s10)
108  %res = xor i32 %a, 268435455
109  ret i32 %res
110}
111
112define i32 @funci32_another(i32 %0) {
113; CHECK-LABEL: funci32_another:
114; CHECK:       # %bb.0:
115; CHECK-NEXT:    lea %s1, -2147483648
116; CHECK-NEXT:    and %s1, %s1, (32)0
117; CHECK-NEXT:    xor %s0, %s0, %s1
118; CHECK-NEXT:    b.l.t (, %s10)
119  %2 = xor i32 %0, -2147483648
120  ret i32 %2
121}
122
123
124define i64 @func64(i64 %a, i64 %b) {
125; CHECK-LABEL: func64:
126; CHECK:       # %bb.0:
127; CHECK-NEXT:    xor %s0, %s0, %s1
128; CHECK-NEXT:    b.l.t (, %s10)
129  %res = xor i64 %a, %b
130  ret i64 %res
131}
132
133define i64 @func64i(i64 %a) {
134; CHECK-LABEL: func64i:
135; CHECK:       # %bb.0:
136; CHECK-NEXT:    xor %s0, %s0, (24)0
137; CHECK-NEXT:    b.l.t (, %s10)
138  %res = xor i64 %a, 1099511627775
139  ret i64 %res
140}
141
142define i128 @func128(i128 %a, i128 %b) {
143; CHECK-LABEL: func128:
144; CHECK:       # %bb.0:
145; CHECK-NEXT:    xor %s0, %s2, %s0
146; CHECK-NEXT:    xor %s1, %s3, %s1
147; CHECK-NEXT:    b.l.t (, %s10)
148  %res = xor i128 %b, %a
149  ret i128 %res
150}
151
152define i128 @funci128(i128 %a) {
153; CHECK-LABEL: funci128:
154; CHECK:       # %bb.0:
155; CHECK-NEXT:    xor %s0, 5, %s0
156; CHECK-NEXT:    b.l.t (, %s10)
157  %res = xor i128 %a, 5
158  ret i128 %res
159}
160