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

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

Issue 1579203002: Fix bitcode parser to check type signatures of functions. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Commit patch. Created 4 years, 11 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/parse_errs/nacl-fake-intrinsic.ll ('k') | no next file » | 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: %p2i -i %s --args -notranslate -timing | \ 4 ; RUN: %p2i -i %s --args -notranslate -timing | \
5 ; RUN: FileCheck --check-prefix=NOIR %s 5 ; RUN: FileCheck --check-prefix=NOIR %s
6 6
7 define internal i1 @IcmpI1(i32 %p1, i32 %p2) { 7 define internal void @IcmpI1(i32 %p1, i32 %p2) {
8 entry: 8 entry:
9 %a1 = trunc i32 %p1 to i1 9 %a1 = trunc i32 %p1 to i1
10 %a2 = trunc i32 %p2 to i1 10 %a2 = trunc i32 %p2 to i1
11 %veq = icmp eq i1 %a1, %a2 11 %veq = icmp eq i1 %a1, %a2
12 %vne = icmp ne i1 %a1, %a2 12 %vne = icmp ne i1 %a1, %a2
13 %vugt = icmp ugt i1 %a1, %a2 13 %vugt = icmp ugt i1 %a1, %a2
14 %vuge = icmp uge i1 %a1, %a2 14 %vuge = icmp uge i1 %a1, %a2
15 %vult = icmp ult i1 %a1, %a2 15 %vult = icmp ult i1 %a1, %a2
16 %vule = icmp ule i1 %a1, %a2 16 %vule = icmp ule i1 %a1, %a2
17 %vsgt = icmp sgt i1 %a1, %a2 17 %vsgt = icmp sgt i1 %a1, %a2
18 %vsge = icmp sge i1 %a1, %a2 18 %vsge = icmp sge i1 %a1, %a2
19 %vslt = icmp slt i1 %a1, %a2 19 %vslt = icmp slt i1 %a1, %a2
20 %vsle = icmp sle i1 %a1, %a2 20 %vsle = icmp sle i1 %a1, %a2
21 ret i1 %veq 21 ret void
22 } 22 }
23 23
24 ; CHECK: define internal i1 @IcmpI1(i32 %p1, i32 %p2) { 24 ; CHECK: define internal void @IcmpI1(i32 %p1, i32 %p2) {
25 ; CHECK-NEXT: entry: 25 ; CHECK-NEXT: entry:
26 ; CHECK-NEXT: %a1 = trunc i32 %p1 to i1 26 ; CHECK-NEXT: %a1 = trunc i32 %p1 to i1
27 ; CHECK-NEXT: %a2 = trunc i32 %p2 to i1 27 ; CHECK-NEXT: %a2 = trunc i32 %p2 to i1
28 ; CHECK-NEXT: %veq = icmp eq i1 %a1, %a2 28 ; CHECK-NEXT: %veq = icmp eq i1 %a1, %a2
29 ; CHECK-NEXT: %vne = icmp ne i1 %a1, %a2 29 ; CHECK-NEXT: %vne = icmp ne i1 %a1, %a2
30 ; CHECK-NEXT: %vugt = icmp ugt i1 %a1, %a2 30 ; CHECK-NEXT: %vugt = icmp ugt i1 %a1, %a2
31 ; CHECK-NEXT: %vuge = icmp uge i1 %a1, %a2 31 ; CHECK-NEXT: %vuge = icmp uge i1 %a1, %a2
32 ; CHECK-NEXT: %vult = icmp ult i1 %a1, %a2 32 ; CHECK-NEXT: %vult = icmp ult i1 %a1, %a2
33 ; CHECK-NEXT: %vule = icmp ule i1 %a1, %a2 33 ; CHECK-NEXT: %vule = icmp ule i1 %a1, %a2
34 ; CHECK-NEXT: %vsgt = icmp sgt i1 %a1, %a2 34 ; CHECK-NEXT: %vsgt = icmp sgt i1 %a1, %a2
35 ; CHECK-NEXT: %vsge = icmp sge i1 %a1, %a2 35 ; CHECK-NEXT: %vsge = icmp sge i1 %a1, %a2
36 ; CHECK-NEXT: %vslt = icmp slt i1 %a1, %a2 36 ; CHECK-NEXT: %vslt = icmp slt i1 %a1, %a2
37 ; CHECK-NEXT: %vsle = icmp sle i1 %a1, %a2 37 ; CHECK-NEXT: %vsle = icmp sle i1 %a1, %a2
38 ; CHECK-NEXT: ret i1 %veq 38 ; CHECK-NEXT: ret void
39 ; CHECK-NEXT: } 39 ; CHECK-NEXT: }
40 40
41 define internal i1 @IcmpI8(i32 %p1, i32 %p2) { 41 define internal void @IcmpI8(i32 %p1, i32 %p2) {
42 entry: 42 entry:
43 %a1 = trunc i32 %p1 to i8 43 %a1 = trunc i32 %p1 to i8
44 %a2 = trunc i32 %p2 to i8 44 %a2 = trunc i32 %p2 to i8
45 %veq = icmp eq i8 %a1, %a2 45 %veq = icmp eq i8 %a1, %a2
46 %vne = icmp ne i8 %a1, %a2 46 %vne = icmp ne i8 %a1, %a2
47 %vugt = icmp ugt i8 %a1, %a2 47 %vugt = icmp ugt i8 %a1, %a2
48 %vuge = icmp uge i8 %a1, %a2 48 %vuge = icmp uge i8 %a1, %a2
49 %vult = icmp ult i8 %a1, %a2 49 %vult = icmp ult i8 %a1, %a2
50 %vule = icmp ule i8 %a1, %a2 50 %vule = icmp ule i8 %a1, %a2
51 %vsgt = icmp sgt i8 %a1, %a2 51 %vsgt = icmp sgt i8 %a1, %a2
52 %vsge = icmp sge i8 %a1, %a2 52 %vsge = icmp sge i8 %a1, %a2
53 %vslt = icmp slt i8 %a1, %a2 53 %vslt = icmp slt i8 %a1, %a2
54 %vsle = icmp sle i8 %a1, %a2 54 %vsle = icmp sle i8 %a1, %a2
55 ret i1 %veq 55 ret void
56 } 56 }
57 57
58 ; CHECK-NEXT: define internal i1 @IcmpI8(i32 %p1, i32 %p2) { 58 ; CHECK-NEXT: define internal void @IcmpI8(i32 %p1, i32 %p2) {
59 ; CHECK-NEXT: entry: 59 ; CHECK-NEXT: entry:
60 ; CHECK-NEXT: %a1 = trunc i32 %p1 to i8 60 ; CHECK-NEXT: %a1 = trunc i32 %p1 to i8
61 ; CHECK-NEXT: %a2 = trunc i32 %p2 to i8 61 ; CHECK-NEXT: %a2 = trunc i32 %p2 to i8
62 ; CHECK-NEXT: %veq = icmp eq i8 %a1, %a2 62 ; CHECK-NEXT: %veq = icmp eq i8 %a1, %a2
63 ; CHECK-NEXT: %vne = icmp ne i8 %a1, %a2 63 ; CHECK-NEXT: %vne = icmp ne i8 %a1, %a2
64 ; CHECK-NEXT: %vugt = icmp ugt i8 %a1, %a2 64 ; CHECK-NEXT: %vugt = icmp ugt i8 %a1, %a2
65 ; CHECK-NEXT: %vuge = icmp uge i8 %a1, %a2 65 ; CHECK-NEXT: %vuge = icmp uge i8 %a1, %a2
66 ; CHECK-NEXT: %vult = icmp ult i8 %a1, %a2 66 ; CHECK-NEXT: %vult = icmp ult i8 %a1, %a2
67 ; CHECK-NEXT: %vule = icmp ule i8 %a1, %a2 67 ; CHECK-NEXT: %vule = icmp ule i8 %a1, %a2
68 ; CHECK-NEXT: %vsgt = icmp sgt i8 %a1, %a2 68 ; CHECK-NEXT: %vsgt = icmp sgt i8 %a1, %a2
69 ; CHECK-NEXT: %vsge = icmp sge i8 %a1, %a2 69 ; CHECK-NEXT: %vsge = icmp sge i8 %a1, %a2
70 ; CHECK-NEXT: %vslt = icmp slt i8 %a1, %a2 70 ; CHECK-NEXT: %vslt = icmp slt i8 %a1, %a2
71 ; CHECK-NEXT: %vsle = icmp sle i8 %a1, %a2 71 ; CHECK-NEXT: %vsle = icmp sle i8 %a1, %a2
72 ; CHECK-NEXT: ret i1 %veq 72 ; CHECK-NEXT: ret void
73 ; CHECK-NEXT: } 73 ; CHECK-NEXT: }
74 74
75 define internal i1 @IcmpI16(i32 %p1, i32 %p2) { 75 define internal void @IcmpI16(i32 %p1, i32 %p2) {
76 entry: 76 entry:
77 %a1 = trunc i32 %p1 to i16 77 %a1 = trunc i32 %p1 to i16
78 %a2 = trunc i32 %p2 to i16 78 %a2 = trunc i32 %p2 to i16
79 %veq = icmp eq i16 %a1, %a2 79 %veq = icmp eq i16 %a1, %a2
80 %vne = icmp ne i16 %a1, %a2 80 %vne = icmp ne i16 %a1, %a2
81 %vugt = icmp ugt i16 %a1, %a2 81 %vugt = icmp ugt i16 %a1, %a2
82 %vuge = icmp uge i16 %a1, %a2 82 %vuge = icmp uge i16 %a1, %a2
83 %vult = icmp ult i16 %a1, %a2 83 %vult = icmp ult i16 %a1, %a2
84 %vule = icmp ule i16 %a1, %a2 84 %vule = icmp ule i16 %a1, %a2
85 %vsgt = icmp sgt i16 %a1, %a2 85 %vsgt = icmp sgt i16 %a1, %a2
86 %vsge = icmp sge i16 %a1, %a2 86 %vsge = icmp sge i16 %a1, %a2
87 %vslt = icmp slt i16 %a1, %a2 87 %vslt = icmp slt i16 %a1, %a2
88 %vsle = icmp sle i16 %a1, %a2 88 %vsle = icmp sle i16 %a1, %a2
89 ret i1 %veq 89 ret void
90 } 90 }
91 91
92 ; CHECK-NEXT: define internal i1 @IcmpI16(i32 %p1, i32 %p2) { 92 ; CHECK-NEXT: define internal void @IcmpI16(i32 %p1, i32 %p2) {
93 ; CHECK-NEXT: entry: 93 ; CHECK-NEXT: entry:
94 ; CHECK-NEXT: %a1 = trunc i32 %p1 to i16 94 ; CHECK-NEXT: %a1 = trunc i32 %p1 to i16
95 ; CHECK-NEXT: %a2 = trunc i32 %p2 to i16 95 ; CHECK-NEXT: %a2 = trunc i32 %p2 to i16
96 ; CHECK-NEXT: %veq = icmp eq i16 %a1, %a2 96 ; CHECK-NEXT: %veq = icmp eq i16 %a1, %a2
97 ; CHECK-NEXT: %vne = icmp ne i16 %a1, %a2 97 ; CHECK-NEXT: %vne = icmp ne i16 %a1, %a2
98 ; CHECK-NEXT: %vugt = icmp ugt i16 %a1, %a2 98 ; CHECK-NEXT: %vugt = icmp ugt i16 %a1, %a2
99 ; CHECK-NEXT: %vuge = icmp uge i16 %a1, %a2 99 ; CHECK-NEXT: %vuge = icmp uge i16 %a1, %a2
100 ; CHECK-NEXT: %vult = icmp ult i16 %a1, %a2 100 ; CHECK-NEXT: %vult = icmp ult i16 %a1, %a2
101 ; CHECK-NEXT: %vule = icmp ule i16 %a1, %a2 101 ; CHECK-NEXT: %vule = icmp ule i16 %a1, %a2
102 ; CHECK-NEXT: %vsgt = icmp sgt i16 %a1, %a2 102 ; CHECK-NEXT: %vsgt = icmp sgt i16 %a1, %a2
103 ; CHECK-NEXT: %vsge = icmp sge i16 %a1, %a2 103 ; CHECK-NEXT: %vsge = icmp sge i16 %a1, %a2
104 ; CHECK-NEXT: %vslt = icmp slt i16 %a1, %a2 104 ; CHECK-NEXT: %vslt = icmp slt i16 %a1, %a2
105 ; CHECK-NEXT: %vsle = icmp sle i16 %a1, %a2 105 ; CHECK-NEXT: %vsle = icmp sle i16 %a1, %a2
106 ; CHECK-NEXT: ret i1 %veq 106 ; CHECK-NEXT: ret void
107 ; CHECK-NEXT: } 107 ; CHECK-NEXT: }
108 108
109 define internal i1 @IcmpI32(i32 %a1, i32 %a2) { 109 define internal void @IcmpI32(i32 %a1, i32 %a2) {
110 entry: 110 entry:
111 %veq = icmp eq i32 %a1, %a2 111 %veq = icmp eq i32 %a1, %a2
112 %vne = icmp ne i32 %a1, %a2 112 %vne = icmp ne i32 %a1, %a2
113 %vugt = icmp ugt i32 %a1, %a2 113 %vugt = icmp ugt i32 %a1, %a2
114 %vuge = icmp uge i32 %a1, %a2 114 %vuge = icmp uge i32 %a1, %a2
115 %vult = icmp ult i32 %a1, %a2 115 %vult = icmp ult i32 %a1, %a2
116 %vule = icmp ule i32 %a1, %a2 116 %vule = icmp ule i32 %a1, %a2
117 %vsgt = icmp sgt i32 %a1, %a2 117 %vsgt = icmp sgt i32 %a1, %a2
118 %vsge = icmp sge i32 %a1, %a2 118 %vsge = icmp sge i32 %a1, %a2
119 %vslt = icmp slt i32 %a1, %a2 119 %vslt = icmp slt i32 %a1, %a2
120 %vsle = icmp sle i32 %a1, %a2 120 %vsle = icmp sle i32 %a1, %a2
121 ret i1 %veq 121 ret void
122 } 122 }
123 123
124 ; CHECK-NEXT: define internal i1 @IcmpI32(i32 %a1, i32 %a2) { 124 ; CHECK-NEXT: define internal void @IcmpI32(i32 %a1, i32 %a2) {
125 ; CHECK-NEXT: entry: 125 ; CHECK-NEXT: entry:
126 ; CHECK-NEXT: %veq = icmp eq i32 %a1, %a2 126 ; CHECK-NEXT: %veq = icmp eq i32 %a1, %a2
127 ; CHECK-NEXT: %vne = icmp ne i32 %a1, %a2 127 ; CHECK-NEXT: %vne = icmp ne i32 %a1, %a2
128 ; CHECK-NEXT: %vugt = icmp ugt i32 %a1, %a2 128 ; CHECK-NEXT: %vugt = icmp ugt i32 %a1, %a2
129 ; CHECK-NEXT: %vuge = icmp uge i32 %a1, %a2 129 ; CHECK-NEXT: %vuge = icmp uge i32 %a1, %a2
130 ; CHECK-NEXT: %vult = icmp ult i32 %a1, %a2 130 ; CHECK-NEXT: %vult = icmp ult i32 %a1, %a2
131 ; CHECK-NEXT: %vule = icmp ule i32 %a1, %a2 131 ; CHECK-NEXT: %vule = icmp ule i32 %a1, %a2
132 ; CHECK-NEXT: %vsgt = icmp sgt i32 %a1, %a2 132 ; CHECK-NEXT: %vsgt = icmp sgt i32 %a1, %a2
133 ; CHECK-NEXT: %vsge = icmp sge i32 %a1, %a2 133 ; CHECK-NEXT: %vsge = icmp sge i32 %a1, %a2
134 ; CHECK-NEXT: %vslt = icmp slt i32 %a1, %a2 134 ; CHECK-NEXT: %vslt = icmp slt i32 %a1, %a2
135 ; CHECK-NEXT: %vsle = icmp sle i32 %a1, %a2 135 ; CHECK-NEXT: %vsle = icmp sle i32 %a1, %a2
136 ; CHECK-NEXT: ret i1 %veq 136 ; CHECK-NEXT: ret void
137 ; CHECK-NEXT: } 137 ; CHECK-NEXT: }
138 138
139 define internal i1 @IcmpI64(i64 %a1, i64 %a2) { 139 define internal void @IcmpI64(i64 %a1, i64 %a2) {
140 entry: 140 entry:
141 %veq = icmp eq i64 %a1, %a2 141 %veq = icmp eq i64 %a1, %a2
142 %vne = icmp ne i64 %a1, %a2 142 %vne = icmp ne i64 %a1, %a2
143 %vugt = icmp ugt i64 %a1, %a2 143 %vugt = icmp ugt i64 %a1, %a2
144 %vuge = icmp uge i64 %a1, %a2 144 %vuge = icmp uge i64 %a1, %a2
145 %vult = icmp ult i64 %a1, %a2 145 %vult = icmp ult i64 %a1, %a2
146 %vule = icmp ule i64 %a1, %a2 146 %vule = icmp ule i64 %a1, %a2
147 %vsgt = icmp sgt i64 %a1, %a2 147 %vsgt = icmp sgt i64 %a1, %a2
148 %vsge = icmp sge i64 %a1, %a2 148 %vsge = icmp sge i64 %a1, %a2
149 %vslt = icmp slt i64 %a1, %a2 149 %vslt = icmp slt i64 %a1, %a2
150 %vsle = icmp sle i64 %a1, %a2 150 %vsle = icmp sle i64 %a1, %a2
151 ret i1 %veq 151 ret void
152 } 152 }
153 153
154 ; CHECK-NEXT: define internal i1 @IcmpI64(i64 %a1, i64 %a2) { 154 ; CHECK-NEXT: define internal void @IcmpI64(i64 %a1, i64 %a2) {
155 ; CHECK-NEXT: entry: 155 ; CHECK-NEXT: entry:
156 ; CHECK-NEXT: %veq = icmp eq i64 %a1, %a2 156 ; CHECK-NEXT: %veq = icmp eq i64 %a1, %a2
157 ; CHECK-NEXT: %vne = icmp ne i64 %a1, %a2 157 ; CHECK-NEXT: %vne = icmp ne i64 %a1, %a2
158 ; CHECK-NEXT: %vugt = icmp ugt i64 %a1, %a2 158 ; CHECK-NEXT: %vugt = icmp ugt i64 %a1, %a2
159 ; CHECK-NEXT: %vuge = icmp uge i64 %a1, %a2 159 ; CHECK-NEXT: %vuge = icmp uge i64 %a1, %a2
160 ; CHECK-NEXT: %vult = icmp ult i64 %a1, %a2 160 ; CHECK-NEXT: %vult = icmp ult i64 %a1, %a2
161 ; CHECK-NEXT: %vule = icmp ule i64 %a1, %a2 161 ; CHECK-NEXT: %vule = icmp ule i64 %a1, %a2
162 ; CHECK-NEXT: %vsgt = icmp sgt i64 %a1, %a2 162 ; CHECK-NEXT: %vsgt = icmp sgt i64 %a1, %a2
163 ; CHECK-NEXT: %vsge = icmp sge i64 %a1, %a2 163 ; CHECK-NEXT: %vsge = icmp sge i64 %a1, %a2
164 ; CHECK-NEXT: %vslt = icmp slt i64 %a1, %a2 164 ; CHECK-NEXT: %vslt = icmp slt i64 %a1, %a2
165 ; CHECK-NEXT: %vsle = icmp sle i64 %a1, %a2 165 ; CHECK-NEXT: %vsle = icmp sle i64 %a1, %a2
166 ; CHECK-NEXT: ret i1 %veq 166 ; CHECK-NEXT: ret void
167 ; CHECK-NEXT: } 167 ; CHECK-NEXT: }
168 168
169 define internal <4 x i1> @IcmpV4xI1(<4 x i1> %a1, <4 x i1> %a2) { 169 define internal <4 x i1> @IcmpV4xI1(<4 x i1> %a1, <4 x i1> %a2) {
170 entry: 170 entry:
171 %veq = icmp eq <4 x i1> %a1, %a2 171 %veq = icmp eq <4 x i1> %a1, %a2
172 %vne = icmp ne <4 x i1> %a1, %a2 172 %vne = icmp ne <4 x i1> %a1, %a2
173 %vugt = icmp ugt <4 x i1> %a1, %a2 173 %vugt = icmp ugt <4 x i1> %a1, %a2
174 %vuge = icmp uge <4 x i1> %a1, %a2 174 %vuge = icmp uge <4 x i1> %a1, %a2
175 %vult = icmp ult <4 x i1> %a1, %a2 175 %vult = icmp ult <4 x i1> %a1, %a2
176 %vule = icmp ule <4 x i1> %a1, %a2 176 %vule = icmp ule <4 x i1> %a1, %a2
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 ; CHECK-NEXT: %vuge = icmp uge <4 x i32> %a1, %a2 339 ; CHECK-NEXT: %vuge = icmp uge <4 x i32> %a1, %a2
340 ; CHECK-NEXT: %vult = icmp ult <4 x i32> %a1, %a2 340 ; CHECK-NEXT: %vult = icmp ult <4 x i32> %a1, %a2
341 ; CHECK-NEXT: %vule = icmp ule <4 x i32> %a1, %a2 341 ; CHECK-NEXT: %vule = icmp ule <4 x i32> %a1, %a2
342 ; CHECK-NEXT: %vsgt = icmp sgt <4 x i32> %a1, %a2 342 ; CHECK-NEXT: %vsgt = icmp sgt <4 x i32> %a1, %a2
343 ; CHECK-NEXT: %vsge = icmp sge <4 x i32> %a1, %a2 343 ; CHECK-NEXT: %vsge = icmp sge <4 x i32> %a1, %a2
344 ; CHECK-NEXT: %vslt = icmp slt <4 x i32> %a1, %a2 344 ; CHECK-NEXT: %vslt = icmp slt <4 x i32> %a1, %a2
345 ; CHECK-NEXT: %vsle = icmp sle <4 x i32> %a1, %a2 345 ; CHECK-NEXT: %vsle = icmp sle <4 x i32> %a1, %a2
346 ; CHECK-NEXT: ret <4 x i1> %veq 346 ; CHECK-NEXT: ret <4 x i1> %veq
347 ; CHECK-NEXT: } 347 ; CHECK-NEXT: }
348 348
349 define internal i1 @FcmpFloat(float %a1, float %a2) { 349 define internal void @FcmpFloat(float %a1, float %a2) {
350 entry: 350 entry:
351 %vfalse = fcmp false float %a1, %a2 351 %vfalse = fcmp false float %a1, %a2
352 %voeq = fcmp oeq float %a1, %a2 352 %voeq = fcmp oeq float %a1, %a2
353 %vogt = fcmp ogt float %a1, %a2 353 %vogt = fcmp ogt float %a1, %a2
354 %voge = fcmp oge float %a1, %a2 354 %voge = fcmp oge float %a1, %a2
355 %volt = fcmp olt float %a1, %a2 355 %volt = fcmp olt float %a1, %a2
356 %vole = fcmp ole float %a1, %a2 356 %vole = fcmp ole float %a1, %a2
357 %vone = fcmp one float %a1, %a2 357 %vone = fcmp one float %a1, %a2
358 %ord = fcmp ord float %a1, %a2 358 %ord = fcmp ord float %a1, %a2
359 %vueq = fcmp ueq float %a1, %a2 359 %vueq = fcmp ueq float %a1, %a2
360 %vugt = fcmp ugt float %a1, %a2 360 %vugt = fcmp ugt float %a1, %a2
361 %vuge = fcmp uge float %a1, %a2 361 %vuge = fcmp uge float %a1, %a2
362 %vult = fcmp ult float %a1, %a2 362 %vult = fcmp ult float %a1, %a2
363 %vule = fcmp ule float %a1, %a2 363 %vule = fcmp ule float %a1, %a2
364 %vune = fcmp une float %a1, %a2 364 %vune = fcmp une float %a1, %a2
365 %vuno = fcmp uno float %a1, %a2 365 %vuno = fcmp uno float %a1, %a2
366 %vtrue = fcmp true float %a1, %a2 366 %vtrue = fcmp true float %a1, %a2
367 ret i1 %voeq 367 ret void
368 } 368 }
369 369
370 ; CHECK-NEXT: define internal i1 @FcmpFloat(float %a1, float %a2) { 370 ; CHECK-NEXT: define internal void @FcmpFloat(float %a1, float %a2) {
371 ; CHECK-NEXT: entry: 371 ; CHECK-NEXT: entry:
372 ; CHECK-NEXT: %vfalse = fcmp false float %a1, %a2 372 ; CHECK-NEXT: %vfalse = fcmp false float %a1, %a2
373 ; CHECK-NEXT: %voeq = fcmp oeq float %a1, %a2 373 ; CHECK-NEXT: %voeq = fcmp oeq float %a1, %a2
374 ; CHECK-NEXT: %vogt = fcmp ogt float %a1, %a2 374 ; CHECK-NEXT: %vogt = fcmp ogt float %a1, %a2
375 ; CHECK-NEXT: %voge = fcmp oge float %a1, %a2 375 ; CHECK-NEXT: %voge = fcmp oge float %a1, %a2
376 ; CHECK-NEXT: %volt = fcmp olt float %a1, %a2 376 ; CHECK-NEXT: %volt = fcmp olt float %a1, %a2
377 ; CHECK-NEXT: %vole = fcmp ole float %a1, %a2 377 ; CHECK-NEXT: %vole = fcmp ole float %a1, %a2
378 ; CHECK-NEXT: %vone = fcmp one float %a1, %a2 378 ; CHECK-NEXT: %vone = fcmp one float %a1, %a2
379 ; CHECK-NEXT: %ord = fcmp ord float %a1, %a2 379 ; CHECK-NEXT: %ord = fcmp ord float %a1, %a2
380 ; CHECK-NEXT: %vueq = fcmp ueq float %a1, %a2 380 ; CHECK-NEXT: %vueq = fcmp ueq float %a1, %a2
381 ; CHECK-NEXT: %vugt = fcmp ugt float %a1, %a2 381 ; CHECK-NEXT: %vugt = fcmp ugt float %a1, %a2
382 ; CHECK-NEXT: %vuge = fcmp uge float %a1, %a2 382 ; CHECK-NEXT: %vuge = fcmp uge float %a1, %a2
383 ; CHECK-NEXT: %vult = fcmp ult float %a1, %a2 383 ; CHECK-NEXT: %vult = fcmp ult float %a1, %a2
384 ; CHECK-NEXT: %vule = fcmp ule float %a1, %a2 384 ; CHECK-NEXT: %vule = fcmp ule float %a1, %a2
385 ; CHECK-NEXT: %vune = fcmp une float %a1, %a2 385 ; CHECK-NEXT: %vune = fcmp une float %a1, %a2
386 ; CHECK-NEXT: %vuno = fcmp uno float %a1, %a2 386 ; CHECK-NEXT: %vuno = fcmp uno float %a1, %a2
387 ; CHECK-NEXT: %vtrue = fcmp true float %a1, %a2 387 ; CHECK-NEXT: %vtrue = fcmp true float %a1, %a2
388 ; CHECK-NEXT: ret i1 %voeq 388 ; CHECK-NEXT: ret void
389 ; CHECK-NEXT: } 389 ; CHECK-NEXT: }
390 390
391 define internal i1 @FcmpDouble(double %a1, double %a2) { 391 define internal void @FcmpDouble(double %a1, double %a2) {
392 entry: 392 entry:
393 %vfalse = fcmp false double %a1, %a2 393 %vfalse = fcmp false double %a1, %a2
394 %voeq = fcmp oeq double %a1, %a2 394 %voeq = fcmp oeq double %a1, %a2
395 %vogt = fcmp ogt double %a1, %a2 395 %vogt = fcmp ogt double %a1, %a2
396 %voge = fcmp oge double %a1, %a2 396 %voge = fcmp oge double %a1, %a2
397 %volt = fcmp olt double %a1, %a2 397 %volt = fcmp olt double %a1, %a2
398 %vole = fcmp ole double %a1, %a2 398 %vole = fcmp ole double %a1, %a2
399 %vone = fcmp one double %a1, %a2 399 %vone = fcmp one double %a1, %a2
400 %ord = fcmp ord double %a1, %a2 400 %ord = fcmp ord double %a1, %a2
401 %vueq = fcmp ueq double %a1, %a2 401 %vueq = fcmp ueq double %a1, %a2
402 %vugt = fcmp ugt double %a1, %a2 402 %vugt = fcmp ugt double %a1, %a2
403 %vuge = fcmp uge double %a1, %a2 403 %vuge = fcmp uge double %a1, %a2
404 %vult = fcmp ult double %a1, %a2 404 %vult = fcmp ult double %a1, %a2
405 %vule = fcmp ule double %a1, %a2 405 %vule = fcmp ule double %a1, %a2
406 %vune = fcmp une double %a1, %a2 406 %vune = fcmp une double %a1, %a2
407 %vuno = fcmp uno double %a1, %a2 407 %vuno = fcmp uno double %a1, %a2
408 %vtrue = fcmp true double %a1, %a2 408 %vtrue = fcmp true double %a1, %a2
409 ret i1 %voeq 409 ret void
410 } 410 }
411 411
412 ; CHECK-NEXT: define internal i1 @FcmpDouble(double %a1, double %a2) { 412 ; CHECK-NEXT: define internal void @FcmpDouble(double %a1, double %a2) {
413 ; CHECK-NEXT: entry: 413 ; CHECK-NEXT: entry:
414 ; CHECK-NEXT: %vfalse = fcmp false double %a1, %a2 414 ; CHECK-NEXT: %vfalse = fcmp false double %a1, %a2
415 ; CHECK-NEXT: %voeq = fcmp oeq double %a1, %a2 415 ; CHECK-NEXT: %voeq = fcmp oeq double %a1, %a2
416 ; CHECK-NEXT: %vogt = fcmp ogt double %a1, %a2 416 ; CHECK-NEXT: %vogt = fcmp ogt double %a1, %a2
417 ; CHECK-NEXT: %voge = fcmp oge double %a1, %a2 417 ; CHECK-NEXT: %voge = fcmp oge double %a1, %a2
418 ; CHECK-NEXT: %volt = fcmp olt double %a1, %a2 418 ; CHECK-NEXT: %volt = fcmp olt double %a1, %a2
419 ; CHECK-NEXT: %vole = fcmp ole double %a1, %a2 419 ; CHECK-NEXT: %vole = fcmp ole double %a1, %a2
420 ; CHECK-NEXT: %vone = fcmp one double %a1, %a2 420 ; CHECK-NEXT: %vone = fcmp one double %a1, %a2
421 ; CHECK-NEXT: %ord = fcmp ord double %a1, %a2 421 ; CHECK-NEXT: %ord = fcmp ord double %a1, %a2
422 ; CHECK-NEXT: %vueq = fcmp ueq double %a1, %a2 422 ; CHECK-NEXT: %vueq = fcmp ueq double %a1, %a2
423 ; CHECK-NEXT: %vugt = fcmp ugt double %a1, %a2 423 ; CHECK-NEXT: %vugt = fcmp ugt double %a1, %a2
424 ; CHECK-NEXT: %vuge = fcmp uge double %a1, %a2 424 ; CHECK-NEXT: %vuge = fcmp uge double %a1, %a2
425 ; CHECK-NEXT: %vult = fcmp ult double %a1, %a2 425 ; CHECK-NEXT: %vult = fcmp ult double %a1, %a2
426 ; CHECK-NEXT: %vule = fcmp ule double %a1, %a2 426 ; CHECK-NEXT: %vule = fcmp ule double %a1, %a2
427 ; CHECK-NEXT: %vune = fcmp une double %a1, %a2 427 ; CHECK-NEXT: %vune = fcmp une double %a1, %a2
428 ; CHECK-NEXT: %vuno = fcmp uno double %a1, %a2 428 ; CHECK-NEXT: %vuno = fcmp uno double %a1, %a2
429 ; CHECK-NEXT: %vtrue = fcmp true double %a1, %a2 429 ; CHECK-NEXT: %vtrue = fcmp true double %a1, %a2
430 ; CHECK-NEXT: ret i1 %voeq 430 ; CHECK-NEXT: ret void
431 ; CHECK-NEXT: } 431 ; CHECK-NEXT: }
432 432
433 define internal <4 x i1> @FcmpV4xFloat(<4 x float> %a1, <4 x float> %a2) { 433 define internal <4 x i1> @FcmpV4xFloat(<4 x float> %a1, <4 x float> %a2) {
434 entry: 434 entry:
435 %vfalse = fcmp false <4 x float> %a1, %a2 435 %vfalse = fcmp false <4 x float> %a1, %a2
436 %voeq = fcmp oeq <4 x float> %a1, %a2 436 %voeq = fcmp oeq <4 x float> %a1, %a2
437 %vogt = fcmp ogt <4 x float> %a1, %a2 437 %vogt = fcmp ogt <4 x float> %a1, %a2
438 %voge = fcmp oge <4 x float> %a1, %a2 438 %voge = fcmp oge <4 x float> %a1, %a2
439 %volt = fcmp olt <4 x float> %a1, %a2 439 %volt = fcmp olt <4 x float> %a1, %a2
440 %vole = fcmp ole <4 x float> %a1, %a2 440 %vole = fcmp ole <4 x float> %a1, %a2
(...skipping 25 matching lines...) Expand all
466 ; CHECK-NEXT: %vuge = fcmp uge <4 x float> %a1, %a2 466 ; CHECK-NEXT: %vuge = fcmp uge <4 x float> %a1, %a2
467 ; CHECK-NEXT: %vult = fcmp ult <4 x float> %a1, %a2 467 ; CHECK-NEXT: %vult = fcmp ult <4 x float> %a1, %a2
468 ; CHECK-NEXT: %vule = fcmp ule <4 x float> %a1, %a2 468 ; CHECK-NEXT: %vule = fcmp ule <4 x float> %a1, %a2
469 ; CHECK-NEXT: %vune = fcmp une <4 x float> %a1, %a2 469 ; CHECK-NEXT: %vune = fcmp une <4 x float> %a1, %a2
470 ; CHECK-NEXT: %vuno = fcmp uno <4 x float> %a1, %a2 470 ; CHECK-NEXT: %vuno = fcmp uno <4 x float> %a1, %a2
471 ; CHECK-NEXT: %vtrue = fcmp true <4 x float> %a1, %a2 471 ; CHECK-NEXT: %vtrue = fcmp true <4 x float> %a1, %a2
472 ; CHECK-NEXT: ret <4 x i1> %voeq 472 ; CHECK-NEXT: ret <4 x i1> %voeq
473 ; CHECK-NEXT: } 473 ; CHECK-NEXT: }
474 474
475 ; NOIR: Total across all functions 475 ; NOIR: Total across all functions
OLDNEW
« no previous file with comments | « tests_lit/parse_errs/nacl-fake-intrinsic.ll ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698