Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(402)

Side by Side Diff: tests_lit/reader_tests/compare.ll

Issue 1387963002: Make sure that all globals are internal, except for "start" functions. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix new tests. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tests_lit/reader_tests/casts.ll ('k') | tests_lit/reader_tests/constants.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; Test if we can read compare instructions. 1 ; Test if we can read compare instructions.
2 2
3 ; RUN: %p2i -i %s --insts | FileCheck %s 3 ; RUN: %p2i -i %s --insts | FileCheck %s
4 ; RUN: %if --need=allow_disable_ir_gen --command \ 4 ; RUN: %if --need=allow_disable_ir_gen --command \
5 ; RUN: %p2i -i %s --args -notranslate -timing -no-ir-gen \ 5 ; RUN: %p2i -i %s --args -notranslate -timing -no-ir-gen \
6 ; RUN: | %if --need=allow_disable_ir_gen --command \ 6 ; RUN: | %if --need=allow_disable_ir_gen --command \
7 ; RUN: FileCheck --check-prefix=NOIR %s 7 ; RUN: FileCheck --check-prefix=NOIR %s
8 8
9 define i1 @IcmpI1(i32 %p1, i32 %p2) { 9 define internal i1 @IcmpI1(i32 %p1, i32 %p2) {
10 entry: 10 entry:
11 %a1 = trunc i32 %p1 to i1 11 %a1 = trunc i32 %p1 to i1
12 %a2 = trunc i32 %p2 to i1 12 %a2 = trunc i32 %p2 to i1
13 %veq = icmp eq i1 %a1, %a2 13 %veq = icmp eq i1 %a1, %a2
14 %vne = icmp ne i1 %a1, %a2 14 %vne = icmp ne i1 %a1, %a2
15 %vugt = icmp ugt i1 %a1, %a2 15 %vugt = icmp ugt i1 %a1, %a2
16 %vuge = icmp uge i1 %a1, %a2 16 %vuge = icmp uge i1 %a1, %a2
17 %vult = icmp ult i1 %a1, %a2 17 %vult = icmp ult i1 %a1, %a2
18 %vule = icmp ule i1 %a1, %a2 18 %vule = icmp ule i1 %a1, %a2
19 %vsgt = icmp sgt i1 %a1, %a2 19 %vsgt = icmp sgt i1 %a1, %a2
20 %vsge = icmp sge i1 %a1, %a2 20 %vsge = icmp sge i1 %a1, %a2
21 %vslt = icmp slt i1 %a1, %a2 21 %vslt = icmp slt i1 %a1, %a2
22 %vsle = icmp sle i1 %a1, %a2 22 %vsle = icmp sle i1 %a1, %a2
23 ret i1 %veq 23 ret i1 %veq
24 } 24 }
25 25
26 ; CHECK: define i1 @IcmpI1(i32 %p1, i32 %p2) { 26 ; CHECK: define internal i1 @IcmpI1(i32 %p1, i32 %p2) {
27 ; CHECK-NEXT: entry: 27 ; CHECK-NEXT: entry:
28 ; CHECK-NEXT: %a1 = trunc i32 %p1 to i1 28 ; CHECK-NEXT: %a1 = trunc i32 %p1 to i1
29 ; CHECK-NEXT: %a2 = trunc i32 %p2 to i1 29 ; CHECK-NEXT: %a2 = trunc i32 %p2 to i1
30 ; CHECK-NEXT: %veq = icmp eq i1 %a1, %a2 30 ; CHECK-NEXT: %veq = icmp eq i1 %a1, %a2
31 ; CHECK-NEXT: %vne = icmp ne i1 %a1, %a2 31 ; CHECK-NEXT: %vne = icmp ne i1 %a1, %a2
32 ; CHECK-NEXT: %vugt = icmp ugt i1 %a1, %a2 32 ; CHECK-NEXT: %vugt = icmp ugt i1 %a1, %a2
33 ; CHECK-NEXT: %vuge = icmp uge i1 %a1, %a2 33 ; CHECK-NEXT: %vuge = icmp uge i1 %a1, %a2
34 ; CHECK-NEXT: %vult = icmp ult i1 %a1, %a2 34 ; CHECK-NEXT: %vult = icmp ult i1 %a1, %a2
35 ; CHECK-NEXT: %vule = icmp ule i1 %a1, %a2 35 ; CHECK-NEXT: %vule = icmp ule i1 %a1, %a2
36 ; CHECK-NEXT: %vsgt = icmp sgt i1 %a1, %a2 36 ; CHECK-NEXT: %vsgt = icmp sgt i1 %a1, %a2
37 ; CHECK-NEXT: %vsge = icmp sge i1 %a1, %a2 37 ; CHECK-NEXT: %vsge = icmp sge i1 %a1, %a2
38 ; CHECK-NEXT: %vslt = icmp slt i1 %a1, %a2 38 ; CHECK-NEXT: %vslt = icmp slt i1 %a1, %a2
39 ; CHECK-NEXT: %vsle = icmp sle i1 %a1, %a2 39 ; CHECK-NEXT: %vsle = icmp sle i1 %a1, %a2
40 ; CHECK-NEXT: ret i1 %veq 40 ; CHECK-NEXT: ret i1 %veq
41 ; CHECK-NEXT: } 41 ; CHECK-NEXT: }
42 42
43 define i1 @IcmpI8(i32 %p1, i32 %p2) { 43 define internal i1 @IcmpI8(i32 %p1, i32 %p2) {
44 entry: 44 entry:
45 %a1 = trunc i32 %p1 to i8 45 %a1 = trunc i32 %p1 to i8
46 %a2 = trunc i32 %p2 to i8 46 %a2 = trunc i32 %p2 to i8
47 %veq = icmp eq i8 %a1, %a2 47 %veq = icmp eq i8 %a1, %a2
48 %vne = icmp ne i8 %a1, %a2 48 %vne = icmp ne i8 %a1, %a2
49 %vugt = icmp ugt i8 %a1, %a2 49 %vugt = icmp ugt i8 %a1, %a2
50 %vuge = icmp uge i8 %a1, %a2 50 %vuge = icmp uge i8 %a1, %a2
51 %vult = icmp ult i8 %a1, %a2 51 %vult = icmp ult i8 %a1, %a2
52 %vule = icmp ule i8 %a1, %a2 52 %vule = icmp ule i8 %a1, %a2
53 %vsgt = icmp sgt i8 %a1, %a2 53 %vsgt = icmp sgt i8 %a1, %a2
54 %vsge = icmp sge i8 %a1, %a2 54 %vsge = icmp sge i8 %a1, %a2
55 %vslt = icmp slt i8 %a1, %a2 55 %vslt = icmp slt i8 %a1, %a2
56 %vsle = icmp sle i8 %a1, %a2 56 %vsle = icmp sle i8 %a1, %a2
57 ret i1 %veq 57 ret i1 %veq
58 } 58 }
59 59
60 ; CHECK-NEXT: define i1 @IcmpI8(i32 %p1, i32 %p2) { 60 ; CHECK-NEXT: define internal i1 @IcmpI8(i32 %p1, i32 %p2) {
61 ; CHECK-NEXT: entry: 61 ; CHECK-NEXT: entry:
62 ; CHECK-NEXT: %a1 = trunc i32 %p1 to i8 62 ; CHECK-NEXT: %a1 = trunc i32 %p1 to i8
63 ; CHECK-NEXT: %a2 = trunc i32 %p2 to i8 63 ; CHECK-NEXT: %a2 = trunc i32 %p2 to i8
64 ; CHECK-NEXT: %veq = icmp eq i8 %a1, %a2 64 ; CHECK-NEXT: %veq = icmp eq i8 %a1, %a2
65 ; CHECK-NEXT: %vne = icmp ne i8 %a1, %a2 65 ; CHECK-NEXT: %vne = icmp ne i8 %a1, %a2
66 ; CHECK-NEXT: %vugt = icmp ugt i8 %a1, %a2 66 ; CHECK-NEXT: %vugt = icmp ugt i8 %a1, %a2
67 ; CHECK-NEXT: %vuge = icmp uge i8 %a1, %a2 67 ; CHECK-NEXT: %vuge = icmp uge i8 %a1, %a2
68 ; CHECK-NEXT: %vult = icmp ult i8 %a1, %a2 68 ; CHECK-NEXT: %vult = icmp ult i8 %a1, %a2
69 ; CHECK-NEXT: %vule = icmp ule i8 %a1, %a2 69 ; CHECK-NEXT: %vule = icmp ule i8 %a1, %a2
70 ; CHECK-NEXT: %vsgt = icmp sgt i8 %a1, %a2 70 ; CHECK-NEXT: %vsgt = icmp sgt i8 %a1, %a2
71 ; CHECK-NEXT: %vsge = icmp sge i8 %a1, %a2 71 ; CHECK-NEXT: %vsge = icmp sge i8 %a1, %a2
72 ; CHECK-NEXT: %vslt = icmp slt i8 %a1, %a2 72 ; CHECK-NEXT: %vslt = icmp slt i8 %a1, %a2
73 ; CHECK-NEXT: %vsle = icmp sle i8 %a1, %a2 73 ; CHECK-NEXT: %vsle = icmp sle i8 %a1, %a2
74 ; CHECK-NEXT: ret i1 %veq 74 ; CHECK-NEXT: ret i1 %veq
75 ; CHECK-NEXT: } 75 ; CHECK-NEXT: }
76 76
77 define i1 @IcmpI16(i32 %p1, i32 %p2) { 77 define internal i1 @IcmpI16(i32 %p1, i32 %p2) {
78 entry: 78 entry:
79 %a1 = trunc i32 %p1 to i16 79 %a1 = trunc i32 %p1 to i16
80 %a2 = trunc i32 %p2 to i16 80 %a2 = trunc i32 %p2 to i16
81 %veq = icmp eq i16 %a1, %a2 81 %veq = icmp eq i16 %a1, %a2
82 %vne = icmp ne i16 %a1, %a2 82 %vne = icmp ne i16 %a1, %a2
83 %vugt = icmp ugt i16 %a1, %a2 83 %vugt = icmp ugt i16 %a1, %a2
84 %vuge = icmp uge i16 %a1, %a2 84 %vuge = icmp uge i16 %a1, %a2
85 %vult = icmp ult i16 %a1, %a2 85 %vult = icmp ult i16 %a1, %a2
86 %vule = icmp ule i16 %a1, %a2 86 %vule = icmp ule i16 %a1, %a2
87 %vsgt = icmp sgt i16 %a1, %a2 87 %vsgt = icmp sgt i16 %a1, %a2
88 %vsge = icmp sge i16 %a1, %a2 88 %vsge = icmp sge i16 %a1, %a2
89 %vslt = icmp slt i16 %a1, %a2 89 %vslt = icmp slt i16 %a1, %a2
90 %vsle = icmp sle i16 %a1, %a2 90 %vsle = icmp sle i16 %a1, %a2
91 ret i1 %veq 91 ret i1 %veq
92 } 92 }
93 93
94 ; CHECK-NEXT: define i1 @IcmpI16(i32 %p1, i32 %p2) { 94 ; CHECK-NEXT: define internal i1 @IcmpI16(i32 %p1, i32 %p2) {
95 ; CHECK-NEXT: entry: 95 ; CHECK-NEXT: entry:
96 ; CHECK-NEXT: %a1 = trunc i32 %p1 to i16 96 ; CHECK-NEXT: %a1 = trunc i32 %p1 to i16
97 ; CHECK-NEXT: %a2 = trunc i32 %p2 to i16 97 ; CHECK-NEXT: %a2 = trunc i32 %p2 to i16
98 ; CHECK-NEXT: %veq = icmp eq i16 %a1, %a2 98 ; CHECK-NEXT: %veq = icmp eq i16 %a1, %a2
99 ; CHECK-NEXT: %vne = icmp ne i16 %a1, %a2 99 ; CHECK-NEXT: %vne = icmp ne i16 %a1, %a2
100 ; CHECK-NEXT: %vugt = icmp ugt i16 %a1, %a2 100 ; CHECK-NEXT: %vugt = icmp ugt i16 %a1, %a2
101 ; CHECK-NEXT: %vuge = icmp uge i16 %a1, %a2 101 ; CHECK-NEXT: %vuge = icmp uge i16 %a1, %a2
102 ; CHECK-NEXT: %vult = icmp ult i16 %a1, %a2 102 ; CHECK-NEXT: %vult = icmp ult i16 %a1, %a2
103 ; CHECK-NEXT: %vule = icmp ule i16 %a1, %a2 103 ; CHECK-NEXT: %vule = icmp ule i16 %a1, %a2
104 ; CHECK-NEXT: %vsgt = icmp sgt i16 %a1, %a2 104 ; CHECK-NEXT: %vsgt = icmp sgt i16 %a1, %a2
105 ; CHECK-NEXT: %vsge = icmp sge i16 %a1, %a2 105 ; CHECK-NEXT: %vsge = icmp sge i16 %a1, %a2
106 ; CHECK-NEXT: %vslt = icmp slt i16 %a1, %a2 106 ; CHECK-NEXT: %vslt = icmp slt i16 %a1, %a2
107 ; CHECK-NEXT: %vsle = icmp sle i16 %a1, %a2 107 ; CHECK-NEXT: %vsle = icmp sle i16 %a1, %a2
108 ; CHECK-NEXT: ret i1 %veq 108 ; CHECK-NEXT: ret i1 %veq
109 ; CHECK-NEXT: } 109 ; CHECK-NEXT: }
110 110
111 define i1 @IcmpI32(i32 %a1, i32 %a2) { 111 define internal i1 @IcmpI32(i32 %a1, i32 %a2) {
112 entry: 112 entry:
113 %veq = icmp eq i32 %a1, %a2 113 %veq = icmp eq i32 %a1, %a2
114 %vne = icmp ne i32 %a1, %a2 114 %vne = icmp ne i32 %a1, %a2
115 %vugt = icmp ugt i32 %a1, %a2 115 %vugt = icmp ugt i32 %a1, %a2
116 %vuge = icmp uge i32 %a1, %a2 116 %vuge = icmp uge i32 %a1, %a2
117 %vult = icmp ult i32 %a1, %a2 117 %vult = icmp ult i32 %a1, %a2
118 %vule = icmp ule i32 %a1, %a2 118 %vule = icmp ule i32 %a1, %a2
119 %vsgt = icmp sgt i32 %a1, %a2 119 %vsgt = icmp sgt i32 %a1, %a2
120 %vsge = icmp sge i32 %a1, %a2 120 %vsge = icmp sge i32 %a1, %a2
121 %vslt = icmp slt i32 %a1, %a2 121 %vslt = icmp slt i32 %a1, %a2
122 %vsle = icmp sle i32 %a1, %a2 122 %vsle = icmp sle i32 %a1, %a2
123 ret i1 %veq 123 ret i1 %veq
124 } 124 }
125 125
126 ; CHECK-NEXT: define i1 @IcmpI32(i32 %a1, i32 %a2) { 126 ; CHECK-NEXT: define internal i1 @IcmpI32(i32 %a1, i32 %a2) {
127 ; CHECK-NEXT: entry: 127 ; CHECK-NEXT: entry:
128 ; CHECK-NEXT: %veq = icmp eq i32 %a1, %a2 128 ; CHECK-NEXT: %veq = icmp eq i32 %a1, %a2
129 ; CHECK-NEXT: %vne = icmp ne i32 %a1, %a2 129 ; CHECK-NEXT: %vne = icmp ne i32 %a1, %a2
130 ; CHECK-NEXT: %vugt = icmp ugt i32 %a1, %a2 130 ; CHECK-NEXT: %vugt = icmp ugt i32 %a1, %a2
131 ; CHECK-NEXT: %vuge = icmp uge i32 %a1, %a2 131 ; CHECK-NEXT: %vuge = icmp uge i32 %a1, %a2
132 ; CHECK-NEXT: %vult = icmp ult i32 %a1, %a2 132 ; CHECK-NEXT: %vult = icmp ult i32 %a1, %a2
133 ; CHECK-NEXT: %vule = icmp ule i32 %a1, %a2 133 ; CHECK-NEXT: %vule = icmp ule i32 %a1, %a2
134 ; CHECK-NEXT: %vsgt = icmp sgt i32 %a1, %a2 134 ; CHECK-NEXT: %vsgt = icmp sgt i32 %a1, %a2
135 ; CHECK-NEXT: %vsge = icmp sge i32 %a1, %a2 135 ; CHECK-NEXT: %vsge = icmp sge i32 %a1, %a2
136 ; CHECK-NEXT: %vslt = icmp slt i32 %a1, %a2 136 ; CHECK-NEXT: %vslt = icmp slt i32 %a1, %a2
137 ; CHECK-NEXT: %vsle = icmp sle i32 %a1, %a2 137 ; CHECK-NEXT: %vsle = icmp sle i32 %a1, %a2
138 ; CHECK-NEXT: ret i1 %veq 138 ; CHECK-NEXT: ret i1 %veq
139 ; CHECK-NEXT: } 139 ; CHECK-NEXT: }
140 140
141 define i1 @IcmpI64(i64 %a1, i64 %a2) { 141 define internal i1 @IcmpI64(i64 %a1, i64 %a2) {
142 entry: 142 entry:
143 %veq = icmp eq i64 %a1, %a2 143 %veq = icmp eq i64 %a1, %a2
144 %vne = icmp ne i64 %a1, %a2 144 %vne = icmp ne i64 %a1, %a2
145 %vugt = icmp ugt i64 %a1, %a2 145 %vugt = icmp ugt i64 %a1, %a2
146 %vuge = icmp uge i64 %a1, %a2 146 %vuge = icmp uge i64 %a1, %a2
147 %vult = icmp ult i64 %a1, %a2 147 %vult = icmp ult i64 %a1, %a2
148 %vule = icmp ule i64 %a1, %a2 148 %vule = icmp ule i64 %a1, %a2
149 %vsgt = icmp sgt i64 %a1, %a2 149 %vsgt = icmp sgt i64 %a1, %a2
150 %vsge = icmp sge i64 %a1, %a2 150 %vsge = icmp sge i64 %a1, %a2
151 %vslt = icmp slt i64 %a1, %a2 151 %vslt = icmp slt i64 %a1, %a2
152 %vsle = icmp sle i64 %a1, %a2 152 %vsle = icmp sle i64 %a1, %a2
153 ret i1 %veq 153 ret i1 %veq
154 } 154 }
155 155
156 ; CHECK-NEXT: define i1 @IcmpI64(i64 %a1, i64 %a2) { 156 ; CHECK-NEXT: define internal i1 @IcmpI64(i64 %a1, i64 %a2) {
157 ; CHECK-NEXT: entry: 157 ; CHECK-NEXT: entry:
158 ; CHECK-NEXT: %veq = icmp eq i64 %a1, %a2 158 ; CHECK-NEXT: %veq = icmp eq i64 %a1, %a2
159 ; CHECK-NEXT: %vne = icmp ne i64 %a1, %a2 159 ; CHECK-NEXT: %vne = icmp ne i64 %a1, %a2
160 ; CHECK-NEXT: %vugt = icmp ugt i64 %a1, %a2 160 ; CHECK-NEXT: %vugt = icmp ugt i64 %a1, %a2
161 ; CHECK-NEXT: %vuge = icmp uge i64 %a1, %a2 161 ; CHECK-NEXT: %vuge = icmp uge i64 %a1, %a2
162 ; CHECK-NEXT: %vult = icmp ult i64 %a1, %a2 162 ; CHECK-NEXT: %vult = icmp ult i64 %a1, %a2
163 ; CHECK-NEXT: %vule = icmp ule i64 %a1, %a2 163 ; CHECK-NEXT: %vule = icmp ule i64 %a1, %a2
164 ; CHECK-NEXT: %vsgt = icmp sgt i64 %a1, %a2 164 ; CHECK-NEXT: %vsgt = icmp sgt i64 %a1, %a2
165 ; CHECK-NEXT: %vsge = icmp sge i64 %a1, %a2 165 ; CHECK-NEXT: %vsge = icmp sge i64 %a1, %a2
166 ; CHECK-NEXT: %vslt = icmp slt i64 %a1, %a2 166 ; CHECK-NEXT: %vslt = icmp slt i64 %a1, %a2
167 ; CHECK-NEXT: %vsle = icmp sle i64 %a1, %a2 167 ; CHECK-NEXT: %vsle = icmp sle i64 %a1, %a2
168 ; CHECK-NEXT: ret i1 %veq 168 ; CHECK-NEXT: ret i1 %veq
169 ; CHECK-NEXT: } 169 ; CHECK-NEXT: }
170 170
171 define <4 x i1> @IcmpV4xI1(<4 x i1> %a1, <4 x i1> %a2) { 171 define internal <4 x i1> @IcmpV4xI1(<4 x i1> %a1, <4 x i1> %a2) {
172 entry: 172 entry:
173 %veq = icmp eq <4 x i1> %a1, %a2 173 %veq = icmp eq <4 x i1> %a1, %a2
174 %vne = icmp ne <4 x i1> %a1, %a2 174 %vne = icmp ne <4 x i1> %a1, %a2
175 %vugt = icmp ugt <4 x i1> %a1, %a2 175 %vugt = icmp ugt <4 x i1> %a1, %a2
176 %vuge = icmp uge <4 x i1> %a1, %a2 176 %vuge = icmp uge <4 x i1> %a1, %a2
177 %vult = icmp ult <4 x i1> %a1, %a2 177 %vult = icmp ult <4 x i1> %a1, %a2
178 %vule = icmp ule <4 x i1> %a1, %a2 178 %vule = icmp ule <4 x i1> %a1, %a2
179 %vsgt = icmp sgt <4 x i1> %a1, %a2 179 %vsgt = icmp sgt <4 x i1> %a1, %a2
180 %vsge = icmp sge <4 x i1> %a1, %a2 180 %vsge = icmp sge <4 x i1> %a1, %a2
181 %vslt = icmp slt <4 x i1> %a1, %a2 181 %vslt = icmp slt <4 x i1> %a1, %a2
182 %vsle = icmp sle <4 x i1> %a1, %a2 182 %vsle = icmp sle <4 x i1> %a1, %a2
183 ret <4 x i1> %veq 183 ret <4 x i1> %veq
184 } 184 }
185 185
186 ; CHECK-NEXT: define <4 x i1> @IcmpV4xI1(<4 x i1> %a1, <4 x i1> %a2) { 186 ; CHECK-NEXT: define internal <4 x i1> @IcmpV4xI1(<4 x i1> %a1, <4 x i1> %a2) {
187 ; CHECK-NEXT: entry: 187 ; CHECK-NEXT: entry:
188 ; CHECK-NEXT: %veq = icmp eq <4 x i1> %a1, %a2 188 ; CHECK-NEXT: %veq = icmp eq <4 x i1> %a1, %a2
189 ; CHECK-NEXT: %vne = icmp ne <4 x i1> %a1, %a2 189 ; CHECK-NEXT: %vne = icmp ne <4 x i1> %a1, %a2
190 ; CHECK-NEXT: %vugt = icmp ugt <4 x i1> %a1, %a2 190 ; CHECK-NEXT: %vugt = icmp ugt <4 x i1> %a1, %a2
191 ; CHECK-NEXT: %vuge = icmp uge <4 x i1> %a1, %a2 191 ; CHECK-NEXT: %vuge = icmp uge <4 x i1> %a1, %a2
192 ; CHECK-NEXT: %vult = icmp ult <4 x i1> %a1, %a2 192 ; CHECK-NEXT: %vult = icmp ult <4 x i1> %a1, %a2
193 ; CHECK-NEXT: %vule = icmp ule <4 x i1> %a1, %a2 193 ; CHECK-NEXT: %vule = icmp ule <4 x i1> %a1, %a2
194 ; CHECK-NEXT: %vsgt = icmp sgt <4 x i1> %a1, %a2 194 ; CHECK-NEXT: %vsgt = icmp sgt <4 x i1> %a1, %a2
195 ; CHECK-NEXT: %vsge = icmp sge <4 x i1> %a1, %a2 195 ; CHECK-NEXT: %vsge = icmp sge <4 x i1> %a1, %a2
196 ; CHECK-NEXT: %vslt = icmp slt <4 x i1> %a1, %a2 196 ; CHECK-NEXT: %vslt = icmp slt <4 x i1> %a1, %a2
197 ; CHECK-NEXT: %vsle = icmp sle <4 x i1> %a1, %a2 197 ; CHECK-NEXT: %vsle = icmp sle <4 x i1> %a1, %a2
198 ; CHECK-NEXT: ret <4 x i1> %veq 198 ; CHECK-NEXT: ret <4 x i1> %veq
199 ; CHECK-NEXT: } 199 ; CHECK-NEXT: }
200 200
201 define <8 x i1> @IcmpV8xI1(<8 x i1> %a1, <8 x i1> %a2) { 201 define internal <8 x i1> @IcmpV8xI1(<8 x i1> %a1, <8 x i1> %a2) {
202 entry: 202 entry:
203 %veq = icmp eq <8 x i1> %a1, %a2 203 %veq = icmp eq <8 x i1> %a1, %a2
204 %vne = icmp ne <8 x i1> %a1, %a2 204 %vne = icmp ne <8 x i1> %a1, %a2
205 %vugt = icmp ugt <8 x i1> %a1, %a2 205 %vugt = icmp ugt <8 x i1> %a1, %a2
206 %vuge = icmp uge <8 x i1> %a1, %a2 206 %vuge = icmp uge <8 x i1> %a1, %a2
207 %vult = icmp ult <8 x i1> %a1, %a2 207 %vult = icmp ult <8 x i1> %a1, %a2
208 %vule = icmp ule <8 x i1> %a1, %a2 208 %vule = icmp ule <8 x i1> %a1, %a2
209 %vsgt = icmp sgt <8 x i1> %a1, %a2 209 %vsgt = icmp sgt <8 x i1> %a1, %a2
210 %vsge = icmp sge <8 x i1> %a1, %a2 210 %vsge = icmp sge <8 x i1> %a1, %a2
211 %vslt = icmp slt <8 x i1> %a1, %a2 211 %vslt = icmp slt <8 x i1> %a1, %a2
212 %vsle = icmp sle <8 x i1> %a1, %a2 212 %vsle = icmp sle <8 x i1> %a1, %a2
213 ret <8 x i1> %veq 213 ret <8 x i1> %veq
214 } 214 }
215 215
216 ; CHECK-NEXT: define <8 x i1> @IcmpV8xI1(<8 x i1> %a1, <8 x i1> %a2) { 216 ; CHECK-NEXT: define internal <8 x i1> @IcmpV8xI1(<8 x i1> %a1, <8 x i1> %a2) {
217 ; CHECK-NEXT: entry: 217 ; CHECK-NEXT: entry:
218 ; CHECK-NEXT: %veq = icmp eq <8 x i1> %a1, %a2 218 ; CHECK-NEXT: %veq = icmp eq <8 x i1> %a1, %a2
219 ; CHECK-NEXT: %vne = icmp ne <8 x i1> %a1, %a2 219 ; CHECK-NEXT: %vne = icmp ne <8 x i1> %a1, %a2
220 ; CHECK-NEXT: %vugt = icmp ugt <8 x i1> %a1, %a2 220 ; CHECK-NEXT: %vugt = icmp ugt <8 x i1> %a1, %a2
221 ; CHECK-NEXT: %vuge = icmp uge <8 x i1> %a1, %a2 221 ; CHECK-NEXT: %vuge = icmp uge <8 x i1> %a1, %a2
222 ; CHECK-NEXT: %vult = icmp ult <8 x i1> %a1, %a2 222 ; CHECK-NEXT: %vult = icmp ult <8 x i1> %a1, %a2
223 ; CHECK-NEXT: %vule = icmp ule <8 x i1> %a1, %a2 223 ; CHECK-NEXT: %vule = icmp ule <8 x i1> %a1, %a2
224 ; CHECK-NEXT: %vsgt = icmp sgt <8 x i1> %a1, %a2 224 ; CHECK-NEXT: %vsgt = icmp sgt <8 x i1> %a1, %a2
225 ; CHECK-NEXT: %vsge = icmp sge <8 x i1> %a1, %a2 225 ; CHECK-NEXT: %vsge = icmp sge <8 x i1> %a1, %a2
226 ; CHECK-NEXT: %vslt = icmp slt <8 x i1> %a1, %a2 226 ; CHECK-NEXT: %vslt = icmp slt <8 x i1> %a1, %a2
227 ; CHECK-NEXT: %vsle = icmp sle <8 x i1> %a1, %a2 227 ; CHECK-NEXT: %vsle = icmp sle <8 x i1> %a1, %a2
228 ; CHECK-NEXT: ret <8 x i1> %veq 228 ; CHECK-NEXT: ret <8 x i1> %veq
229 ; CHECK-NEXT: } 229 ; CHECK-NEXT: }
230 230
231 define <16 x i1> @IcmpV16xI1(<16 x i1> %a1, <16 x i1> %a2) { 231 define internal <16 x i1> @IcmpV16xI1(<16 x i1> %a1, <16 x i1> %a2) {
232 entry: 232 entry:
233 %veq = icmp eq <16 x i1> %a1, %a2 233 %veq = icmp eq <16 x i1> %a1, %a2
234 %vne = icmp ne <16 x i1> %a1, %a2 234 %vne = icmp ne <16 x i1> %a1, %a2
235 %vugt = icmp ugt <16 x i1> %a1, %a2 235 %vugt = icmp ugt <16 x i1> %a1, %a2
236 %vuge = icmp uge <16 x i1> %a1, %a2 236 %vuge = icmp uge <16 x i1> %a1, %a2
237 %vult = icmp ult <16 x i1> %a1, %a2 237 %vult = icmp ult <16 x i1> %a1, %a2
238 %vule = icmp ule <16 x i1> %a1, %a2 238 %vule = icmp ule <16 x i1> %a1, %a2
239 %vsgt = icmp sgt <16 x i1> %a1, %a2 239 %vsgt = icmp sgt <16 x i1> %a1, %a2
240 %vsge = icmp sge <16 x i1> %a1, %a2 240 %vsge = icmp sge <16 x i1> %a1, %a2
241 %vslt = icmp slt <16 x i1> %a1, %a2 241 %vslt = icmp slt <16 x i1> %a1, %a2
242 %vsle = icmp sle <16 x i1> %a1, %a2 242 %vsle = icmp sle <16 x i1> %a1, %a2
243 ret <16 x i1> %veq 243 ret <16 x i1> %veq
244 } 244 }
245 245
246 ; CHECK-NEXT: define <16 x i1> @IcmpV16xI1(<16 x i1> %a1, <16 x i1> %a2) { 246 ; CHECK-NEXT: define internal <16 x i1> @IcmpV16xI1(<16 x i1> %a1, <16 x i1> %a2 ) {
247 ; CHECK-NEXT: entry: 247 ; CHECK-NEXT: entry:
248 ; CHECK-NEXT: %veq = icmp eq <16 x i1> %a1, %a2 248 ; CHECK-NEXT: %veq = icmp eq <16 x i1> %a1, %a2
249 ; CHECK-NEXT: %vne = icmp ne <16 x i1> %a1, %a2 249 ; CHECK-NEXT: %vne = icmp ne <16 x i1> %a1, %a2
250 ; CHECK-NEXT: %vugt = icmp ugt <16 x i1> %a1, %a2 250 ; CHECK-NEXT: %vugt = icmp ugt <16 x i1> %a1, %a2
251 ; CHECK-NEXT: %vuge = icmp uge <16 x i1> %a1, %a2 251 ; CHECK-NEXT: %vuge = icmp uge <16 x i1> %a1, %a2
252 ; CHECK-NEXT: %vult = icmp ult <16 x i1> %a1, %a2 252 ; CHECK-NEXT: %vult = icmp ult <16 x i1> %a1, %a2
253 ; CHECK-NEXT: %vule = icmp ule <16 x i1> %a1, %a2 253 ; CHECK-NEXT: %vule = icmp ule <16 x i1> %a1, %a2
254 ; CHECK-NEXT: %vsgt = icmp sgt <16 x i1> %a1, %a2 254 ; CHECK-NEXT: %vsgt = icmp sgt <16 x i1> %a1, %a2
255 ; CHECK-NEXT: %vsge = icmp sge <16 x i1> %a1, %a2 255 ; CHECK-NEXT: %vsge = icmp sge <16 x i1> %a1, %a2
256 ; CHECK-NEXT: %vslt = icmp slt <16 x i1> %a1, %a2 256 ; CHECK-NEXT: %vslt = icmp slt <16 x i1> %a1, %a2
257 ; CHECK-NEXT: %vsle = icmp sle <16 x i1> %a1, %a2 257 ; CHECK-NEXT: %vsle = icmp sle <16 x i1> %a1, %a2
258 ; CHECK-NEXT: ret <16 x i1> %veq 258 ; CHECK-NEXT: ret <16 x i1> %veq
259 ; CHECK-NEXT: } 259 ; CHECK-NEXT: }
260 260
261 define <16 x i1> @IcmpV16xI8(<16 x i8> %a1, <16 x i8> %a2) { 261 define internal <16 x i1> @IcmpV16xI8(<16 x i8> %a1, <16 x i8> %a2) {
262 entry: 262 entry:
263 %veq = icmp eq <16 x i8> %a1, %a2 263 %veq = icmp eq <16 x i8> %a1, %a2
264 %vne = icmp ne <16 x i8> %a1, %a2 264 %vne = icmp ne <16 x i8> %a1, %a2
265 %vugt = icmp ugt <16 x i8> %a1, %a2 265 %vugt = icmp ugt <16 x i8> %a1, %a2
266 %vuge = icmp uge <16 x i8> %a1, %a2 266 %vuge = icmp uge <16 x i8> %a1, %a2
267 %vult = icmp ult <16 x i8> %a1, %a2 267 %vult = icmp ult <16 x i8> %a1, %a2
268 %vule = icmp ule <16 x i8> %a1, %a2 268 %vule = icmp ule <16 x i8> %a1, %a2
269 %vsgt = icmp sgt <16 x i8> %a1, %a2 269 %vsgt = icmp sgt <16 x i8> %a1, %a2
270 %vsge = icmp sge <16 x i8> %a1, %a2 270 %vsge = icmp sge <16 x i8> %a1, %a2
271 %vslt = icmp slt <16 x i8> %a1, %a2 271 %vslt = icmp slt <16 x i8> %a1, %a2
272 %vsle = icmp sle <16 x i8> %a1, %a2 272 %vsle = icmp sle <16 x i8> %a1, %a2
273 ret <16 x i1> %veq 273 ret <16 x i1> %veq
274 } 274 }
275 275
276 ; CHECK-NEXT: define <16 x i1> @IcmpV16xI8(<16 x i8> %a1, <16 x i8> %a2) { 276 ; CHECK-NEXT: define internal <16 x i1> @IcmpV16xI8(<16 x i8> %a1, <16 x i8> %a2 ) {
277 ; CHECK-NEXT: entry: 277 ; CHECK-NEXT: entry:
278 ; CHECK-NEXT: %veq = icmp eq <16 x i8> %a1, %a2 278 ; CHECK-NEXT: %veq = icmp eq <16 x i8> %a1, %a2
279 ; CHECK-NEXT: %vne = icmp ne <16 x i8> %a1, %a2 279 ; CHECK-NEXT: %vne = icmp ne <16 x i8> %a1, %a2
280 ; CHECK-NEXT: %vugt = icmp ugt <16 x i8> %a1, %a2 280 ; CHECK-NEXT: %vugt = icmp ugt <16 x i8> %a1, %a2
281 ; CHECK-NEXT: %vuge = icmp uge <16 x i8> %a1, %a2 281 ; CHECK-NEXT: %vuge = icmp uge <16 x i8> %a1, %a2
282 ; CHECK-NEXT: %vult = icmp ult <16 x i8> %a1, %a2 282 ; CHECK-NEXT: %vult = icmp ult <16 x i8> %a1, %a2
283 ; CHECK-NEXT: %vule = icmp ule <16 x i8> %a1, %a2 283 ; CHECK-NEXT: %vule = icmp ule <16 x i8> %a1, %a2
284 ; CHECK-NEXT: %vsgt = icmp sgt <16 x i8> %a1, %a2 284 ; CHECK-NEXT: %vsgt = icmp sgt <16 x i8> %a1, %a2
285 ; CHECK-NEXT: %vsge = icmp sge <16 x i8> %a1, %a2 285 ; CHECK-NEXT: %vsge = icmp sge <16 x i8> %a1, %a2
286 ; CHECK-NEXT: %vslt = icmp slt <16 x i8> %a1, %a2 286 ; CHECK-NEXT: %vslt = icmp slt <16 x i8> %a1, %a2
287 ; CHECK-NEXT: %vsle = icmp sle <16 x i8> %a1, %a2 287 ; CHECK-NEXT: %vsle = icmp sle <16 x i8> %a1, %a2
288 ; CHECK-NEXT: ret <16 x i1> %veq 288 ; CHECK-NEXT: ret <16 x i1> %veq
289 ; CHECK-NEXT: } 289 ; CHECK-NEXT: }
290 290
291 define <8 x i1> @IcmpV8xI16(<8 x i16> %a1, <8 x i16> %a2) { 291 define internal <8 x i1> @IcmpV8xI16(<8 x i16> %a1, <8 x i16> %a2) {
292 entry: 292 entry:
293 %veq = icmp eq <8 x i16> %a1, %a2 293 %veq = icmp eq <8 x i16> %a1, %a2
294 %vne = icmp ne <8 x i16> %a1, %a2 294 %vne = icmp ne <8 x i16> %a1, %a2
295 %vugt = icmp ugt <8 x i16> %a1, %a2 295 %vugt = icmp ugt <8 x i16> %a1, %a2
296 %vuge = icmp uge <8 x i16> %a1, %a2 296 %vuge = icmp uge <8 x i16> %a1, %a2
297 %vult = icmp ult <8 x i16> %a1, %a2 297 %vult = icmp ult <8 x i16> %a1, %a2
298 %vule = icmp ule <8 x i16> %a1, %a2 298 %vule = icmp ule <8 x i16> %a1, %a2
299 %vsgt = icmp sgt <8 x i16> %a1, %a2 299 %vsgt = icmp sgt <8 x i16> %a1, %a2
300 %vsge = icmp sge <8 x i16> %a1, %a2 300 %vsge = icmp sge <8 x i16> %a1, %a2
301 %vslt = icmp slt <8 x i16> %a1, %a2 301 %vslt = icmp slt <8 x i16> %a1, %a2
302 %vsle = icmp sle <8 x i16> %a1, %a2 302 %vsle = icmp sle <8 x i16> %a1, %a2
303 ret <8 x i1> %veq 303 ret <8 x i1> %veq
304 } 304 }
305 305
306 ; CHECK-NEXT: define <8 x i1> @IcmpV8xI16(<8 x i16> %a1, <8 x i16> %a2) { 306 ; CHECK-NEXT: define internal <8 x i1> @IcmpV8xI16(<8 x i16> %a1, <8 x i16> %a2) {
307 ; CHECK-NEXT: entry: 307 ; CHECK-NEXT: entry:
308 ; CHECK-NEXT: %veq = icmp eq <8 x i16> %a1, %a2 308 ; CHECK-NEXT: %veq = icmp eq <8 x i16> %a1, %a2
309 ; CHECK-NEXT: %vne = icmp ne <8 x i16> %a1, %a2 309 ; CHECK-NEXT: %vne = icmp ne <8 x i16> %a1, %a2
310 ; CHECK-NEXT: %vugt = icmp ugt <8 x i16> %a1, %a2 310 ; CHECK-NEXT: %vugt = icmp ugt <8 x i16> %a1, %a2
311 ; CHECK-NEXT: %vuge = icmp uge <8 x i16> %a1, %a2 311 ; CHECK-NEXT: %vuge = icmp uge <8 x i16> %a1, %a2
312 ; CHECK-NEXT: %vult = icmp ult <8 x i16> %a1, %a2 312 ; CHECK-NEXT: %vult = icmp ult <8 x i16> %a1, %a2
313 ; CHECK-NEXT: %vule = icmp ule <8 x i16> %a1, %a2 313 ; CHECK-NEXT: %vule = icmp ule <8 x i16> %a1, %a2
314 ; CHECK-NEXT: %vsgt = icmp sgt <8 x i16> %a1, %a2 314 ; CHECK-NEXT: %vsgt = icmp sgt <8 x i16> %a1, %a2
315 ; CHECK-NEXT: %vsge = icmp sge <8 x i16> %a1, %a2 315 ; CHECK-NEXT: %vsge = icmp sge <8 x i16> %a1, %a2
316 ; CHECK-NEXT: %vslt = icmp slt <8 x i16> %a1, %a2 316 ; CHECK-NEXT: %vslt = icmp slt <8 x i16> %a1, %a2
317 ; CHECK-NEXT: %vsle = icmp sle <8 x i16> %a1, %a2 317 ; CHECK-NEXT: %vsle = icmp sle <8 x i16> %a1, %a2
318 ; CHECK-NEXT: ret <8 x i1> %veq 318 ; CHECK-NEXT: ret <8 x i1> %veq
319 ; CHECK-NEXT: } 319 ; CHECK-NEXT: }
320 320
321 define <4 x i1> @IcmpV4xI32(<4 x i32> %a1, <4 x i32> %a2) { 321 define internal <4 x i1> @IcmpV4xI32(<4 x i32> %a1, <4 x i32> %a2) {
322 entry: 322 entry:
323 %veq = icmp eq <4 x i32> %a1, %a2 323 %veq = icmp eq <4 x i32> %a1, %a2
324 %vne = icmp ne <4 x i32> %a1, %a2 324 %vne = icmp ne <4 x i32> %a1, %a2
325 %vugt = icmp ugt <4 x i32> %a1, %a2 325 %vugt = icmp ugt <4 x i32> %a1, %a2
326 %vuge = icmp uge <4 x i32> %a1, %a2 326 %vuge = icmp uge <4 x i32> %a1, %a2
327 %vult = icmp ult <4 x i32> %a1, %a2 327 %vult = icmp ult <4 x i32> %a1, %a2
328 %vule = icmp ule <4 x i32> %a1, %a2 328 %vule = icmp ule <4 x i32> %a1, %a2
329 %vsgt = icmp sgt <4 x i32> %a1, %a2 329 %vsgt = icmp sgt <4 x i32> %a1, %a2
330 %vsge = icmp sge <4 x i32> %a1, %a2 330 %vsge = icmp sge <4 x i32> %a1, %a2
331 %vslt = icmp slt <4 x i32> %a1, %a2 331 %vslt = icmp slt <4 x i32> %a1, %a2
332 %vsle = icmp sle <4 x i32> %a1, %a2 332 %vsle = icmp sle <4 x i32> %a1, %a2
333 ret <4 x i1> %veq 333 ret <4 x i1> %veq
334 } 334 }
335 335
336 ; CHECK-NEXT: define <4 x i1> @IcmpV4xI32(<4 x i32> %a1, <4 x i32> %a2) { 336 ; CHECK-NEXT: define internal <4 x i1> @IcmpV4xI32(<4 x i32> %a1, <4 x i32> %a2) {
337 ; CHECK-NEXT: entry: 337 ; CHECK-NEXT: entry:
338 ; CHECK-NEXT: %veq = icmp eq <4 x i32> %a1, %a2 338 ; CHECK-NEXT: %veq = icmp eq <4 x i32> %a1, %a2
339 ; CHECK-NEXT: %vne = icmp ne <4 x i32> %a1, %a2 339 ; CHECK-NEXT: %vne = icmp ne <4 x i32> %a1, %a2
340 ; CHECK-NEXT: %vugt = icmp ugt <4 x i32> %a1, %a2 340 ; CHECK-NEXT: %vugt = icmp ugt <4 x i32> %a1, %a2
341 ; CHECK-NEXT: %vuge = icmp uge <4 x i32> %a1, %a2 341 ; CHECK-NEXT: %vuge = icmp uge <4 x i32> %a1, %a2
342 ; CHECK-NEXT: %vult = icmp ult <4 x i32> %a1, %a2 342 ; CHECK-NEXT: %vult = icmp ult <4 x i32> %a1, %a2
343 ; CHECK-NEXT: %vule = icmp ule <4 x i32> %a1, %a2 343 ; CHECK-NEXT: %vule = icmp ule <4 x i32> %a1, %a2
344 ; CHECK-NEXT: %vsgt = icmp sgt <4 x i32> %a1, %a2 344 ; CHECK-NEXT: %vsgt = icmp sgt <4 x i32> %a1, %a2
345 ; CHECK-NEXT: %vsge = icmp sge <4 x i32> %a1, %a2 345 ; CHECK-NEXT: %vsge = icmp sge <4 x i32> %a1, %a2
346 ; CHECK-NEXT: %vslt = icmp slt <4 x i32> %a1, %a2 346 ; CHECK-NEXT: %vslt = icmp slt <4 x i32> %a1, %a2
347 ; CHECK-NEXT: %vsle = icmp sle <4 x i32> %a1, %a2 347 ; CHECK-NEXT: %vsle = icmp sle <4 x i32> %a1, %a2
348 ; CHECK-NEXT: ret <4 x i1> %veq 348 ; CHECK-NEXT: ret <4 x i1> %veq
349 ; CHECK-NEXT: } 349 ; CHECK-NEXT: }
350 350
351 define i1 @FcmpFloat(float %a1, float %a2) { 351 define internal i1 @FcmpFloat(float %a1, float %a2) {
352 entry: 352 entry:
353 %vfalse = fcmp false float %a1, %a2 353 %vfalse = fcmp false float %a1, %a2
354 %voeq = fcmp oeq float %a1, %a2 354 %voeq = fcmp oeq float %a1, %a2
355 %vogt = fcmp ogt float %a1, %a2 355 %vogt = fcmp ogt float %a1, %a2
356 %voge = fcmp oge float %a1, %a2 356 %voge = fcmp oge float %a1, %a2
357 %volt = fcmp olt float %a1, %a2 357 %volt = fcmp olt float %a1, %a2
358 %vole = fcmp ole float %a1, %a2 358 %vole = fcmp ole float %a1, %a2
359 %vone = fcmp one float %a1, %a2 359 %vone = fcmp one float %a1, %a2
360 %ord = fcmp ord float %a1, %a2 360 %ord = fcmp ord float %a1, %a2
361 %vueq = fcmp ueq float %a1, %a2 361 %vueq = fcmp ueq float %a1, %a2
362 %vugt = fcmp ugt float %a1, %a2 362 %vugt = fcmp ugt float %a1, %a2
363 %vuge = fcmp uge float %a1, %a2 363 %vuge = fcmp uge float %a1, %a2
364 %vult = fcmp ult float %a1, %a2 364 %vult = fcmp ult float %a1, %a2
365 %vule = fcmp ule float %a1, %a2 365 %vule = fcmp ule float %a1, %a2
366 %vune = fcmp une float %a1, %a2 366 %vune = fcmp une float %a1, %a2
367 %vuno = fcmp uno float %a1, %a2 367 %vuno = fcmp uno float %a1, %a2
368 %vtrue = fcmp true float %a1, %a2 368 %vtrue = fcmp true float %a1, %a2
369 ret i1 %voeq 369 ret i1 %voeq
370 } 370 }
371 371
372 ; CHECK-NEXT: define i1 @FcmpFloat(float %a1, float %a2) { 372 ; CHECK-NEXT: define internal i1 @FcmpFloat(float %a1, float %a2) {
373 ; CHECK-NEXT: entry: 373 ; CHECK-NEXT: entry:
374 ; CHECK-NEXT: %vfalse = fcmp false float %a1, %a2 374 ; CHECK-NEXT: %vfalse = fcmp false float %a1, %a2
375 ; CHECK-NEXT: %voeq = fcmp oeq float %a1, %a2 375 ; CHECK-NEXT: %voeq = fcmp oeq float %a1, %a2
376 ; CHECK-NEXT: %vogt = fcmp ogt float %a1, %a2 376 ; CHECK-NEXT: %vogt = fcmp ogt float %a1, %a2
377 ; CHECK-NEXT: %voge = fcmp oge float %a1, %a2 377 ; CHECK-NEXT: %voge = fcmp oge float %a1, %a2
378 ; CHECK-NEXT: %volt = fcmp olt float %a1, %a2 378 ; CHECK-NEXT: %volt = fcmp olt float %a1, %a2
379 ; CHECK-NEXT: %vole = fcmp ole float %a1, %a2 379 ; CHECK-NEXT: %vole = fcmp ole float %a1, %a2
380 ; CHECK-NEXT: %vone = fcmp one float %a1, %a2 380 ; CHECK-NEXT: %vone = fcmp one float %a1, %a2
381 ; CHECK-NEXT: %ord = fcmp ord float %a1, %a2 381 ; CHECK-NEXT: %ord = fcmp ord float %a1, %a2
382 ; CHECK-NEXT: %vueq = fcmp ueq float %a1, %a2 382 ; CHECK-NEXT: %vueq = fcmp ueq float %a1, %a2
383 ; CHECK-NEXT: %vugt = fcmp ugt float %a1, %a2 383 ; CHECK-NEXT: %vugt = fcmp ugt float %a1, %a2
384 ; CHECK-NEXT: %vuge = fcmp uge float %a1, %a2 384 ; CHECK-NEXT: %vuge = fcmp uge float %a1, %a2
385 ; CHECK-NEXT: %vult = fcmp ult float %a1, %a2 385 ; CHECK-NEXT: %vult = fcmp ult float %a1, %a2
386 ; CHECK-NEXT: %vule = fcmp ule float %a1, %a2 386 ; CHECK-NEXT: %vule = fcmp ule float %a1, %a2
387 ; CHECK-NEXT: %vune = fcmp une float %a1, %a2 387 ; CHECK-NEXT: %vune = fcmp une float %a1, %a2
388 ; CHECK-NEXT: %vuno = fcmp uno float %a1, %a2 388 ; CHECK-NEXT: %vuno = fcmp uno float %a1, %a2
389 ; CHECK-NEXT: %vtrue = fcmp true float %a1, %a2 389 ; CHECK-NEXT: %vtrue = fcmp true float %a1, %a2
390 ; CHECK-NEXT: ret i1 %voeq 390 ; CHECK-NEXT: ret i1 %voeq
391 ; CHECK-NEXT: } 391 ; CHECK-NEXT: }
392 392
393 define i1 @FcmpDouble(double %a1, double %a2) { 393 define internal i1 @FcmpDouble(double %a1, double %a2) {
394 entry: 394 entry:
395 %vfalse = fcmp false double %a1, %a2 395 %vfalse = fcmp false double %a1, %a2
396 %voeq = fcmp oeq double %a1, %a2 396 %voeq = fcmp oeq double %a1, %a2
397 %vogt = fcmp ogt double %a1, %a2 397 %vogt = fcmp ogt double %a1, %a2
398 %voge = fcmp oge double %a1, %a2 398 %voge = fcmp oge double %a1, %a2
399 %volt = fcmp olt double %a1, %a2 399 %volt = fcmp olt double %a1, %a2
400 %vole = fcmp ole double %a1, %a2 400 %vole = fcmp ole double %a1, %a2
401 %vone = fcmp one double %a1, %a2 401 %vone = fcmp one double %a1, %a2
402 %ord = fcmp ord double %a1, %a2 402 %ord = fcmp ord double %a1, %a2
403 %vueq = fcmp ueq double %a1, %a2 403 %vueq = fcmp ueq double %a1, %a2
404 %vugt = fcmp ugt double %a1, %a2 404 %vugt = fcmp ugt double %a1, %a2
405 %vuge = fcmp uge double %a1, %a2 405 %vuge = fcmp uge double %a1, %a2
406 %vult = fcmp ult double %a1, %a2 406 %vult = fcmp ult double %a1, %a2
407 %vule = fcmp ule double %a1, %a2 407 %vule = fcmp ule double %a1, %a2
408 %vune = fcmp une double %a1, %a2 408 %vune = fcmp une double %a1, %a2
409 %vuno = fcmp uno double %a1, %a2 409 %vuno = fcmp uno double %a1, %a2
410 %vtrue = fcmp true double %a1, %a2 410 %vtrue = fcmp true double %a1, %a2
411 ret i1 %voeq 411 ret i1 %voeq
412 } 412 }
413 413
414 ; CHECK-NEXT: define i1 @FcmpDouble(double %a1, double %a2) { 414 ; CHECK-NEXT: define internal i1 @FcmpDouble(double %a1, double %a2) {
415 ; CHECK-NEXT: entry: 415 ; CHECK-NEXT: entry:
416 ; CHECK-NEXT: %vfalse = fcmp false double %a1, %a2 416 ; CHECK-NEXT: %vfalse = fcmp false double %a1, %a2
417 ; CHECK-NEXT: %voeq = fcmp oeq double %a1, %a2 417 ; CHECK-NEXT: %voeq = fcmp oeq double %a1, %a2
418 ; CHECK-NEXT: %vogt = fcmp ogt double %a1, %a2 418 ; CHECK-NEXT: %vogt = fcmp ogt double %a1, %a2
419 ; CHECK-NEXT: %voge = fcmp oge double %a1, %a2 419 ; CHECK-NEXT: %voge = fcmp oge double %a1, %a2
420 ; CHECK-NEXT: %volt = fcmp olt double %a1, %a2 420 ; CHECK-NEXT: %volt = fcmp olt double %a1, %a2
421 ; CHECK-NEXT: %vole = fcmp ole double %a1, %a2 421 ; CHECK-NEXT: %vole = fcmp ole double %a1, %a2
422 ; CHECK-NEXT: %vone = fcmp one double %a1, %a2 422 ; CHECK-NEXT: %vone = fcmp one double %a1, %a2
423 ; CHECK-NEXT: %ord = fcmp ord double %a1, %a2 423 ; CHECK-NEXT: %ord = fcmp ord double %a1, %a2
424 ; CHECK-NEXT: %vueq = fcmp ueq double %a1, %a2 424 ; CHECK-NEXT: %vueq = fcmp ueq double %a1, %a2
425 ; CHECK-NEXT: %vugt = fcmp ugt double %a1, %a2 425 ; CHECK-NEXT: %vugt = fcmp ugt double %a1, %a2
426 ; CHECK-NEXT: %vuge = fcmp uge double %a1, %a2 426 ; CHECK-NEXT: %vuge = fcmp uge double %a1, %a2
427 ; CHECK-NEXT: %vult = fcmp ult double %a1, %a2 427 ; CHECK-NEXT: %vult = fcmp ult double %a1, %a2
428 ; CHECK-NEXT: %vule = fcmp ule double %a1, %a2 428 ; CHECK-NEXT: %vule = fcmp ule double %a1, %a2
429 ; CHECK-NEXT: %vune = fcmp une double %a1, %a2 429 ; CHECK-NEXT: %vune = fcmp une double %a1, %a2
430 ; CHECK-NEXT: %vuno = fcmp uno double %a1, %a2 430 ; CHECK-NEXT: %vuno = fcmp uno double %a1, %a2
431 ; CHECK-NEXT: %vtrue = fcmp true double %a1, %a2 431 ; CHECK-NEXT: %vtrue = fcmp true double %a1, %a2
432 ; CHECK-NEXT: ret i1 %voeq 432 ; CHECK-NEXT: ret i1 %voeq
433 ; CHECK-NEXT: } 433 ; CHECK-NEXT: }
434 434
435 define <4 x i1> @FcmpV4xFloat(<4 x float> %a1, <4 x float> %a2) { 435 define internal <4 x i1> @FcmpV4xFloat(<4 x float> %a1, <4 x float> %a2) {
436 entry: 436 entry:
437 %vfalse = fcmp false <4 x float> %a1, %a2 437 %vfalse = fcmp false <4 x float> %a1, %a2
438 %voeq = fcmp oeq <4 x float> %a1, %a2 438 %voeq = fcmp oeq <4 x float> %a1, %a2
439 %vogt = fcmp ogt <4 x float> %a1, %a2 439 %vogt = fcmp ogt <4 x float> %a1, %a2
440 %voge = fcmp oge <4 x float> %a1, %a2 440 %voge = fcmp oge <4 x float> %a1, %a2
441 %volt = fcmp olt <4 x float> %a1, %a2 441 %volt = fcmp olt <4 x float> %a1, %a2
442 %vole = fcmp ole <4 x float> %a1, %a2 442 %vole = fcmp ole <4 x float> %a1, %a2
443 %vone = fcmp one <4 x float> %a1, %a2 443 %vone = fcmp one <4 x float> %a1, %a2
444 %ord = fcmp ord <4 x float> %a1, %a2 444 %ord = fcmp ord <4 x float> %a1, %a2
445 %vueq = fcmp ueq <4 x float> %a1, %a2 445 %vueq = fcmp ueq <4 x float> %a1, %a2
446 %vugt = fcmp ugt <4 x float> %a1, %a2 446 %vugt = fcmp ugt <4 x float> %a1, %a2
447 %vuge = fcmp uge <4 x float> %a1, %a2 447 %vuge = fcmp uge <4 x float> %a1, %a2
448 %vult = fcmp ult <4 x float> %a1, %a2 448 %vult = fcmp ult <4 x float> %a1, %a2
449 %vule = fcmp ule <4 x float> %a1, %a2 449 %vule = fcmp ule <4 x float> %a1, %a2
450 %vune = fcmp une <4 x float> %a1, %a2 450 %vune = fcmp une <4 x float> %a1, %a2
451 %vuno = fcmp uno <4 x float> %a1, %a2 451 %vuno = fcmp uno <4 x float> %a1, %a2
452 %vtrue = fcmp true <4 x float> %a1, %a2 452 %vtrue = fcmp true <4 x float> %a1, %a2
453 ret <4 x i1> %voeq 453 ret <4 x i1> %voeq
454 } 454 }
455 455
456 ; CHECK-NEXT: define <4 x i1> @FcmpV4xFloat(<4 x float> %a1, <4 x float> %a2) { 456 ; CHECK-NEXT: define internal <4 x i1> @FcmpV4xFloat(<4 x float> %a1, <4 x float > %a2) {
457 ; CHECK-NEXT: entry: 457 ; CHECK-NEXT: entry:
458 ; CHECK-NEXT: %vfalse = fcmp false <4 x float> %a1, %a2 458 ; CHECK-NEXT: %vfalse = fcmp false <4 x float> %a1, %a2
459 ; CHECK-NEXT: %voeq = fcmp oeq <4 x float> %a1, %a2 459 ; CHECK-NEXT: %voeq = fcmp oeq <4 x float> %a1, %a2
460 ; CHECK-NEXT: %vogt = fcmp ogt <4 x float> %a1, %a2 460 ; CHECK-NEXT: %vogt = fcmp ogt <4 x float> %a1, %a2
461 ; CHECK-NEXT: %voge = fcmp oge <4 x float> %a1, %a2 461 ; CHECK-NEXT: %voge = fcmp oge <4 x float> %a1, %a2
462 ; CHECK-NEXT: %volt = fcmp olt <4 x float> %a1, %a2 462 ; CHECK-NEXT: %volt = fcmp olt <4 x float> %a1, %a2
463 ; CHECK-NEXT: %vole = fcmp ole <4 x float> %a1, %a2 463 ; CHECK-NEXT: %vole = fcmp ole <4 x float> %a1, %a2
464 ; CHECK-NEXT: %vone = fcmp one <4 x float> %a1, %a2 464 ; CHECK-NEXT: %vone = fcmp one <4 x float> %a1, %a2
465 ; CHECK-NEXT: %ord = fcmp ord <4 x float> %a1, %a2 465 ; CHECK-NEXT: %ord = fcmp ord <4 x float> %a1, %a2
466 ; CHECK-NEXT: %vueq = fcmp ueq <4 x float> %a1, %a2 466 ; CHECK-NEXT: %vueq = fcmp ueq <4 x float> %a1, %a2
467 ; CHECK-NEXT: %vugt = fcmp ugt <4 x float> %a1, %a2 467 ; CHECK-NEXT: %vugt = fcmp ugt <4 x float> %a1, %a2
468 ; CHECK-NEXT: %vuge = fcmp uge <4 x float> %a1, %a2 468 ; CHECK-NEXT: %vuge = fcmp uge <4 x float> %a1, %a2
469 ; CHECK-NEXT: %vult = fcmp ult <4 x float> %a1, %a2 469 ; CHECK-NEXT: %vult = fcmp ult <4 x float> %a1, %a2
470 ; CHECK-NEXT: %vule = fcmp ule <4 x float> %a1, %a2 470 ; CHECK-NEXT: %vule = fcmp ule <4 x float> %a1, %a2
471 ; CHECK-NEXT: %vune = fcmp une <4 x float> %a1, %a2 471 ; CHECK-NEXT: %vune = fcmp une <4 x float> %a1, %a2
472 ; CHECK-NEXT: %vuno = fcmp uno <4 x float> %a1, %a2 472 ; CHECK-NEXT: %vuno = fcmp uno <4 x float> %a1, %a2
473 ; CHECK-NEXT: %vtrue = fcmp true <4 x float> %a1, %a2 473 ; CHECK-NEXT: %vtrue = fcmp true <4 x float> %a1, %a2
474 ; CHECK-NEXT: ret <4 x i1> %voeq 474 ; CHECK-NEXT: ret <4 x i1> %voeq
475 ; CHECK-NEXT: } 475 ; CHECK-NEXT: }
476 476
477 ; NOIR: Total across all functions 477 ; NOIR: Total across all functions
OLDNEW
« no previous file with comments | « tests_lit/reader_tests/casts.ll ('k') | tests_lit/reader_tests/constants.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698