95
|
1 ; RUN: llc < %s -march=mips -mcpu=mips32 | \
|
120
|
2 ; RUN: FileCheck %s -check-prefixes=ALL,32-C
|
95
|
3 ; RUN: llc < %s -march=mips -mcpu=mips32r2 | \
|
120
|
4 ; RUN: FileCheck %s -check-prefixes=ALL,32-C
|
95
|
5 ; RUN: llc < %s -march=mips -mcpu=mips32r6 | \
|
120
|
6 ; RUN: FileCheck %s -check-prefixes=ALL,32-CMP
|
95
|
7 ; RUN: llc < %s -march=mips64 -mcpu=mips4 | \
|
120
|
8 ; RUN: FileCheck %s -check-prefixes=ALL,64-C
|
95
|
9 ; RUN: llc < %s -march=mips64 -mcpu=mips64 | \
|
120
|
10 ; RUN: FileCheck %s -check-prefixes=ALL,64-C
|
95
|
11 ; RUN: llc < %s -march=mips64 -mcpu=mips64r2 | \
|
120
|
12 ; RUN: FileCheck %s -check-prefixes=ALL,64-C
|
95
|
13 ; RUN: llc < %s -march=mips64 -mcpu=mips64r6 | \
|
120
|
14 ; RUN: FileCheck %s -check-prefixes=ALL,64-CMP
|
|
15 ; RUN: llc < %s -march=mips -mcpu=mips32r3 -mattr=+micromips | FileCheck %s \
|
|
16 ; RUN: -check-prefixes=ALL,MM,MM32R3
|
|
17 ; RUN: llc < %s -march=mips -mcpu=mips32r6 -mattr=+micromips | FileCheck %s \
|
|
18 ; RUN: -check-prefixes=ALL,MM,MMR6,MM32R6
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 define i32 @false_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 ; ALL-LABEL: false_f32:
|
120
|
22 ; 32-C: addiu $2, $zero, 0
|
|
23
|
|
24 ; 32-CMP: addiu $2, $zero, 0
|
|
25
|
|
26 ; 64-C: addiu $2, $zero, 0
|
|
27
|
|
28 ; 64-CMP: addiu $2, $zero, 0
|
|
29
|
|
30 ; MM-DAG: li16 $2, 0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
32 %1 = fcmp false float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
34 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
35 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
36
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 define i32 @oeq_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38 ; ALL-LABEL: oeq_f32:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39
|
95
|
40 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41 ; 32-C-DAG: c.eq.s $f12, $f14
|
95
|
42 ; 32-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43
|
95
|
44 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 ; 64-C-DAG: c.eq.s $f12, $f13
|
95
|
46 ; 64-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
48 ; 32-CMP-DAG: cmp.eq.s $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
49 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
50 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
51
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52 ; 64-CMP-DAG: cmp.eq.s $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
53 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
54 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
55
|
120
|
56 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
57 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
58 ; MM32R3-DAG: c.eq.s $f12, $f14
|
|
59 ; MM32R3-DAG: movf $[[T1]], $[[T0]], $fcc0
|
|
60
|
|
61 ; MM32R6-DAG: cmp.eq.s $[[T0:f[0-9]+]], $f12, $f14
|
|
62 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
63 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
64
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
65 %1 = fcmp oeq float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
66 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
67 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
68 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
69
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
70 define i32 @ogt_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
71 ; ALL-LABEL: ogt_f32:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
72
|
95
|
73 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
74 ; 32-C-DAG: c.ule.s $f12, $f14
|
95
|
75 ; 32-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
76
|
95
|
77 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
78 ; 64-C-DAG: c.ule.s $f12, $f13
|
95
|
79 ; 64-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
80
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
81 ; 32-CMP-DAG: cmp.lt.s $[[T0:f[0-9]+]], $f14, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
82 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
83 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
84
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
85 ; 64-CMP-DAG: cmp.lt.s $[[T0:f[0-9]+]], $f13, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
86 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
87 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
88
|
120
|
89 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
90 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
91 ; MM32R3-DAG: c.ule.s $f12, $f14
|
|
92 ; MM32R3-DAG: movt $[[T1]], $[[T0]], $fcc0
|
|
93
|
|
94 ; MM32R6-DAG: cmp.lt.s $[[T0:f[0-9]+]], $f14, $f12
|
|
95 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
96 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
97
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
98 %1 = fcmp ogt float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
99 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
100 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
101 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
102
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
103 define i32 @oge_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
104 ; ALL-LABEL: oge_f32:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
105
|
95
|
106 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
107 ; 32-C-DAG: c.ult.s $f12, $f14
|
95
|
108 ; 32-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
109
|
95
|
110 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
111 ; 64-C-DAG: c.ult.s $f12, $f13
|
95
|
112 ; 64-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
113
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
114 ; 32-CMP-DAG: cmp.le.s $[[T0:f[0-9]+]], $f14, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
115 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
116 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
117
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
118 ; 64-CMP-DAG: cmp.le.s $[[T0:f[0-9]+]], $f13, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
119 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
120 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
121
|
120
|
122 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
123 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
124 ; MM32R3-DAG: c.ult.s $f12, $f14
|
|
125 ; MM32R3-DAG: movt $[[T1]], $[[T0]], $fcc0
|
|
126
|
|
127 ; MM32R6-DAG: cmp.le.s $[[T0:f[0-9]+]], $f14, $f12
|
|
128 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
129 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
130
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
131 %1 = fcmp oge float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
132 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
133 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
134 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
135
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
136 define i32 @olt_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
137 ; ALL-LABEL: olt_f32:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
138
|
95
|
139 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
140 ; 32-C-DAG: c.olt.s $f12, $f14
|
95
|
141 ; 32-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
142
|
95
|
143 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
144 ; 64-C-DAG: c.olt.s $f12, $f13
|
95
|
145 ; 64-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
146
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
147 ; 32-CMP-DAG: cmp.lt.s $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
148 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
149 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
150
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
151 ; 64-CMP-DAG: cmp.lt.s $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
152 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
153 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
154
|
120
|
155 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
156 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
157 ; MM32R3-DAG: c.olt.s $f12, $f14
|
|
158 ; MM32R3-DAG: movf $[[T1]], $[[T0]], $fcc0
|
|
159
|
|
160 ; MM32R6-DAG: cmp.lt.s $[[T0:f[0-9]+]], $f12, $f14
|
|
161 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
162 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
163
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
164 %1 = fcmp olt float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
165 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
166 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
167 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
168
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
169 define i32 @ole_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
170 ; ALL-LABEL: ole_f32:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
171
|
95
|
172 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
173 ; 32-C-DAG: c.ole.s $f12, $f14
|
95
|
174 ; 32-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
175
|
95
|
176 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
177 ; 64-C-DAG: c.ole.s $f12, $f13
|
95
|
178 ; 64-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
179
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
180 ; 32-CMP-DAG: cmp.le.s $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
181 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
182 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
183
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
184 ; 64-CMP-DAG: cmp.le.s $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
185 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
186 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
187
|
120
|
188 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
189 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
190 ; MM32R3-DAG: c.ole.s $f12, $f14
|
|
191 ; MM32R3-DAG: movf $[[T1]], $[[T0]], $fcc0
|
|
192
|
|
193 ; MM32R6-DAG: cmp.le.s $[[T0:f[0-9]+]], $f12, $f14
|
|
194 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
195 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
196
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
197 %1 = fcmp ole float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
198 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
199 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
200 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
201
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
202 define i32 @one_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
203 ; ALL-LABEL: one_f32:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
204
|
95
|
205 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
206 ; 32-C-DAG: c.ueq.s $f12, $f14
|
95
|
207 ; 32-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
208
|
95
|
209 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
210 ; 64-C-DAG: c.ueq.s $f12, $f13
|
95
|
211 ; 64-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
212
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
213 ; 32-CMP-DAG: cmp.ueq.s $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
214 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
215 ; 32-CMP-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
216 ; 32-CMP-DAG: andi $2, $[[T2]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
217
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
218 ; 64-CMP-DAG: cmp.ueq.s $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
219 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
220 ; 64-CMP-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
221 ; 64-CMP-DAG: andi $2, $[[T2]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
222
|
120
|
223 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
224 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
225 ; MM32R3-DAG: c.ueq.s $f12, $f14
|
|
226 ; MM32R3-DAG: movt $[[T1]], $[[T0]], $fcc0
|
|
227
|
|
228 ; MM32R6-DAG: cmp.ueq.s $[[T0:f[0-9]+]], $f12, $f14
|
|
229 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
230 ; MMR6-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
|
231 ; MMR6-DAG: andi16 $2, $[[T2]], 1
|
|
232
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
233 %1 = fcmp one float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
234 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
235 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
236 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
237
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
238 define i32 @ord_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
239 ; ALL-LABEL: ord_f32:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
240
|
95
|
241 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
242 ; 32-C-DAG: c.un.s $f12, $f14
|
95
|
243 ; 32-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
244
|
95
|
245 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
246 ; 64-C-DAG: c.un.s $f12, $f13
|
95
|
247 ; 64-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
248
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
249 ; 32-CMP-DAG: cmp.un.s $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
250 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
251 ; 32-CMP-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
252 ; 32-CMP-DAG: andi $2, $[[T2]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
253
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
254 ; 64-CMP-DAG: cmp.un.s $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
255 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
256 ; 64-CMP-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
257 ; 64-CMP-DAG: andi $2, $[[T2]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
258
|
120
|
259 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
260 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
261 ; MM32R3-DAG: c.un.s $f12, $f14
|
|
262 ; MM32R3-DAG: movt $[[T1]], $[[T0]], $fcc0
|
|
263
|
|
264 ; MM32R6-DAG: cmp.un.s $[[T0:f[0-9]+]], $f12, $f14
|
|
265 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
266 ; MMR6-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
|
267 ; MMR6-DAG: andi16 $2, $[[T2]], 1
|
|
268
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
269 %1 = fcmp ord float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
270 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
271 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
272 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
273
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
274 define i32 @ueq_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
275 ; ALL-LABEL: ueq_f32:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
276
|
95
|
277 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
278 ; 32-C-DAG: c.ueq.s $f12, $f14
|
95
|
279 ; 32-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
280
|
95
|
281 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
282 ; 64-C-DAG: c.ueq.s $f12, $f13
|
95
|
283 ; 64-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
284
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
285 ; 32-CMP-DAG: cmp.ueq.s $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
286 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
287 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
288
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
289 ; 64-CMP-DAG: cmp.ueq.s $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
290 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
291 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
292
|
120
|
293 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
294 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
295 ; MM32R3-DAG: c.ueq.s $f12, $f14
|
|
296 ; MM32R3-DAG: movf $[[T1]], $[[T0]], $fcc0
|
|
297
|
|
298 ; MM32R6-DAG: cmp.ueq.s $[[T0:f[0-9]+]], $f12, $f14
|
|
299 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
300 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
301
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
302 %1 = fcmp ueq float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
303 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
304 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
305 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
306
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
307 define i32 @ugt_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
308 ; ALL-LABEL: ugt_f32:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
309
|
95
|
310 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
311 ; 32-C-DAG: c.ole.s $f12, $f14
|
95
|
312 ; 32-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
313
|
95
|
314 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
315 ; 64-C-DAG: c.ole.s $f12, $f13
|
95
|
316 ; 64-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
317
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
318 ; 32-CMP-DAG: cmp.ult.s $[[T0:f[0-9]+]], $f14, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
319 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
320 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
321
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
322 ; 64-CMP-DAG: cmp.ult.s $[[T0:f[0-9]+]], $f13, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
323 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
324 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
325
|
120
|
326 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
327 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
328 ; MM32R3-DAG: c.ole.s $f12, $f14
|
|
329 ; MM32R3-DAG: movt $[[T1]], $[[T0]], $fcc0
|
|
330
|
|
331 ; MM32R6-DAG: cmp.ult.s $[[T0:f[0-9]+]], $f14, $f12
|
|
332 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
333 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
334
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
335 %1 = fcmp ugt float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
336 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
337 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
338 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
339
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
340 define i32 @uge_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
341 ; ALL-LABEL: uge_f32:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
342
|
95
|
343 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
344 ; 32-C-DAG: c.olt.s $f12, $f14
|
95
|
345 ; 32-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
346
|
95
|
347 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
348 ; 64-C-DAG: c.olt.s $f12, $f13
|
95
|
349 ; 64-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
350
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
351 ; 32-CMP-DAG: cmp.ule.s $[[T0:f[0-9]+]], $f14, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
352 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
353 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
354
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
355 ; 64-CMP-DAG: cmp.ule.s $[[T0:f[0-9]+]], $f13, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
356 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
357 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
358
|
120
|
359 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
360 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
361 ; MM32R3-DAG: c.olt.s $f12, $f14
|
|
362 ; MM32R3-DAG: movt $[[T1]], $[[T0]], $fcc0
|
|
363
|
|
364 ; MM32R6-DAG: cmp.ule.s $[[T0:f[0-9]+]], $f14, $f12
|
|
365 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
366 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
367
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
368 %1 = fcmp uge float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
369 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
370 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
371 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
372
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
373 define i32 @ult_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
374 ; ALL-LABEL: ult_f32:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
375
|
95
|
376 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
377 ; 32-C-DAG: c.ult.s $f12, $f14
|
95
|
378 ; 32-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
379
|
95
|
380 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
381 ; 64-C-DAG: c.ult.s $f12, $f13
|
95
|
382 ; 64-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
383
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
384 ; 32-CMP-DAG: cmp.ult.s $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
385 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
386 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
387
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
388 ; 64-CMP-DAG: cmp.ult.s $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
389 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
390 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
391
|
120
|
392 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
393 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
394 ; MM32R3-DAG: c.ult.s $f12, $f14
|
|
395 ; MM32R3-DAG: movf $[[T1]], $[[T0]], $fcc0
|
|
396
|
|
397 ; MM32R6-DAG: cmp.ult.s $[[T0:f[0-9]+]], $f12, $f14
|
|
398 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
399 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
95
|
400
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
401 %1 = fcmp ult float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
402 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
403 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
404 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
405
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
406 define i32 @ule_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
407 ; ALL-LABEL: ule_f32:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
408
|
95
|
409 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
410 ; 32-C-DAG: c.ule.s $f12, $f14
|
95
|
411 ; 32-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
412
|
95
|
413 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
414 ; 64-C-DAG: c.ule.s $f12, $f13
|
95
|
415 ; 64-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
416
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
417 ; 32-CMP-DAG: cmp.ule.s $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
418 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
419 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
420
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
421 ; 64-CMP-DAG: cmp.ule.s $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
422 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
423 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
424
|
120
|
425 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
426 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
427 ; MM32R3-DAG: c.ule.s $f12, $f14
|
|
428 ; MM32R3-DAG: movf $[[T1]], $[[T0]], $fcc0
|
|
429
|
|
430 ; MM32R6-DAG: cmp.ule.s $[[T0:f[0-9]+]], $f12, $f14
|
|
431 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
432 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
433
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
434 %1 = fcmp ule float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
435 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
436 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
437 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
438
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
439 define i32 @une_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
440 ; ALL-LABEL: une_f32:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
441
|
95
|
442 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
443 ; 32-C-DAG: c.eq.s $f12, $f14
|
95
|
444 ; 32-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
445
|
95
|
446 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
447 ; 64-C-DAG: c.eq.s $f12, $f13
|
95
|
448 ; 64-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
449
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
450 ; 32-CMP-DAG: cmp.eq.s $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
451 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
452 ; 32-CMP-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
453 ; 32-CMP-DAG: andi $2, $[[T2]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
454
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
455 ; 64-CMP-DAG: cmp.eq.s $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
456 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
457 ; 64-CMP-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
458 ; 64-CMP-DAG: andi $2, $[[T2]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
459
|
120
|
460 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
461 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
462 ; MM32R3-DAG: c.eq.s $f12, $f14
|
|
463 ; MM32R3-DAG: movt $[[T1]], $[[T0]], $fcc0
|
|
464
|
|
465 ; MM32R6-DAG: cmp.eq.s $[[T0:f[0-9]+]], $f12, $f14
|
|
466 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
467 ; MMR6-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
|
468 ; MMR6-DAG: andi16 $2, $[[T2]], 1
|
|
469
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
470 %1 = fcmp une float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
471 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
472 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
473 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
474
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
475 define i32 @uno_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
476 ; ALL-LABEL: uno_f32:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
477
|
95
|
478 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
479 ; 32-C-DAG: c.un.s $f12, $f14
|
95
|
480 ; 32-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
481
|
95
|
482 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
483 ; 64-C-DAG: c.un.s $f12, $f13
|
95
|
484 ; 64-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
485
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
486 ; 32-CMP-DAG: cmp.un.s $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
487 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
488 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
489
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
490 ; 64-CMP-DAG: cmp.un.s $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
491 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
492 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
493
|
120
|
494 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
495 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
496 ; MM32R3-DAG: c.un.s $f12, $f14
|
|
497 ; MM32R3-DAG: movf $[[T1]], $[[T0]], $fcc0
|
|
498
|
|
499 ; MM32R6-DAG: cmp.un.s $[[T0:f[0-9]+]], $f12, $f14
|
|
500 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
501 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
502
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
503 %1 = fcmp uno float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
504 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
505 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
506 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
507
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
508 define i32 @true_f32(float %a, float %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
509 ; ALL-LABEL: true_f32:
|
120
|
510 ; 32-C: addiu $2, $zero, 1
|
|
511
|
|
512 ; 32-CMP: addiu $2, $zero, 1
|
|
513
|
|
514 ; 64-C: addiu $2, $zero, 1
|
|
515
|
|
516 ; 64-CMP: addiu $2, $zero, 1
|
|
517
|
|
518 ; MM-DAG: li16 $2, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
519
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
520 %1 = fcmp true float %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
521 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
522 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
523 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
524
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
525 define i32 @false_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
526 ; ALL-LABEL: false_f64:
|
120
|
527 ; 32-C: addiu $2, $zero, 0
|
|
528
|
|
529 ; 32-CMP: addiu $2, $zero, 0
|
|
530
|
|
531 ; 64-C: addiu $2, $zero, 0
|
|
532
|
|
533 ; 64-CMP: addiu $2, $zero, 0
|
|
534
|
|
535 ; MM-DAG: li16 $2, 0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
536
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
537 %1 = fcmp false double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
538 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
539 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
540 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
541
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
542 define i32 @oeq_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
543 ; ALL-LABEL: oeq_f64:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
544
|
95
|
545 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
546 ; 32-C-DAG: c.eq.d $f12, $f14
|
95
|
547 ; 32-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
548
|
95
|
549 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
550 ; 64-C-DAG: c.eq.d $f12, $f13
|
95
|
551 ; 64-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
552
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
553 ; 32-CMP-DAG: cmp.eq.d $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
554 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
555 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
556
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
557 ; 64-CMP-DAG: cmp.eq.d $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
558 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
559 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
560
|
120
|
561 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
562 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
563 ; MM32R3-DAG: c.eq.d $f12, $f14
|
|
564 ; MM32R3-DAG: movf $[[T1]], $[[T0]], $fcc0
|
|
565
|
|
566 ; MM32R6-DAG: cmp.eq.d $[[T0:f[0-9]+]], $f12, $f14
|
|
567 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
568 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
569
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
570 %1 = fcmp oeq double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
571 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
572 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
573 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
574
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
575 define i32 @ogt_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
576 ; ALL-LABEL: ogt_f64:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
577
|
95
|
578 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
579 ; 32-C-DAG: c.ule.d $f12, $f14
|
95
|
580 ; 32-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
581
|
95
|
582 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
583 ; 64-C-DAG: c.ule.d $f12, $f13
|
95
|
584 ; 64-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
585
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
586 ; 32-CMP-DAG: cmp.lt.d $[[T0:f[0-9]+]], $f14, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
587 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
588 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
589
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
590 ; 64-CMP-DAG: cmp.lt.d $[[T0:f[0-9]+]], $f13, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
591 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
592 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
593
|
120
|
594 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
595 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
596 ; MM32R3-DAG: c.ule.d $f12, $f14
|
|
597 ; MM32R3-DAG: movt $[[T1]], $[[T0]], $fcc0
|
|
598
|
|
599 ; MM32R6-DAG: cmp.lt.d $[[T0:f[0-9]+]], $f14, $f12
|
|
600 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
601 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
602
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
603 %1 = fcmp ogt double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
604 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
605 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
606 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
607
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
608 define i32 @oge_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
609 ; ALL-LABEL: oge_f64:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
610
|
95
|
611 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
612 ; 32-C-DAG: c.ult.d $f12, $f14
|
95
|
613 ; 32-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
614
|
95
|
615 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
616 ; 64-C-DAG: c.ult.d $f12, $f13
|
95
|
617 ; 64-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
618
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
619 ; 32-CMP-DAG: cmp.le.d $[[T0:f[0-9]+]], $f14, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
620 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
621 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
622
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
623 ; 64-CMP-DAG: cmp.le.d $[[T0:f[0-9]+]], $f13, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
624 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
625 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
626
|
120
|
627 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
628 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
629 ; MM32R3-DAG: c.ult.d $f12, $f14
|
|
630 ; MM32R3-DAG: movt $[[T1]], $[[T0]], $fcc0
|
|
631
|
|
632 ; MM32R6-DAG: cmp.le.d $[[T0:f[0-9]+]], $f14, $f12
|
|
633 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
634 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
635
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
636 %1 = fcmp oge double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
637 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
638 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
639 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
640
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
641 define i32 @olt_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
642 ; ALL-LABEL: olt_f64:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
643
|
95
|
644 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
645 ; 32-C-DAG: c.olt.d $f12, $f14
|
95
|
646 ; 32-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
647
|
95
|
648 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
649 ; 64-C-DAG: c.olt.d $f12, $f13
|
95
|
650 ; 64-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
651
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
652 ; 32-CMP-DAG: cmp.lt.d $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
653 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
654 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
655
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
656 ; 64-CMP-DAG: cmp.lt.d $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
657 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
658 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
659
|
120
|
660 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
661 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
662 ; MM32R3-DAG: c.olt.d $f12, $f14
|
|
663 ; MM32R3-DAG: movf $[[T1]], $[[T0]], $fcc0
|
|
664
|
|
665 ; MM32R6-DAG: cmp.lt.d $[[T0:f[0-9]+]], $f12, $f14
|
|
666 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
667 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
668
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
669 %1 = fcmp olt double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
670 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
671 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
672 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
673
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
674 define i32 @ole_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
675 ; ALL-LABEL: ole_f64:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
676
|
95
|
677 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
678 ; 32-C-DAG: c.ole.d $f12, $f14
|
95
|
679 ; 32-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
680
|
95
|
681 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
682 ; 64-C-DAG: c.ole.d $f12, $f13
|
95
|
683 ; 64-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
684
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
685 ; 32-CMP-DAG: cmp.le.d $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
686 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
687 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
688
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
689 ; 64-CMP-DAG: cmp.le.d $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
690 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
691 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
692
|
120
|
693 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
694 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
695 ; MM32R3-DAG: c.ole.d $f12, $f14
|
|
696 ; MM32R3-DAG: movf $[[T1]], $[[T0]], $fcc0
|
|
697
|
|
698 ; MM32R6-DAG: cmp.le.d $[[T0:f[0-9]+]], $f12, $f14
|
|
699 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
700 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
701
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
702 %1 = fcmp ole double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
703 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
704 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
705 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
706
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
707 define i32 @one_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
708 ; ALL-LABEL: one_f64:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
709
|
95
|
710 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
711 ; 32-C-DAG: c.ueq.d $f12, $f14
|
95
|
712 ; 32-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
713
|
95
|
714 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
715 ; 64-C-DAG: c.ueq.d $f12, $f13
|
95
|
716 ; 64-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
717
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
718 ; 32-CMP-DAG: cmp.ueq.d $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
719 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
720 ; 32-CMP-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
721 ; 32-CMP-DAG: andi $2, $[[T2]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
722
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
723 ; 64-CMP-DAG: cmp.ueq.d $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
724 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
725 ; 64-CMP-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
726 ; 64-CMP-DAG: andi $2, $[[T2]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
727
|
120
|
728 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
729 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
730 ; MM32R3-DAG: c.ueq.d $f12, $f14
|
|
731 ; MM32R3-DAG: movt $[[T1]], $[[T0]], $fcc0
|
|
732
|
|
733 ; MM32R6-DAG: cmp.ueq.d $[[T0:f[0-9]+]], $f12, $f14
|
|
734 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
735 ; MMR6-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
|
736 ; MMR6-DAG: andi16 $2, $[[T2]], 1
|
|
737
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
738 %1 = fcmp one double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
739 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
740 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
741 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
742
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
743 define i32 @ord_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
744 ; ALL-LABEL: ord_f64:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
745
|
95
|
746 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
747 ; 32-C-DAG: c.un.d $f12, $f14
|
95
|
748 ; 32-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
749
|
95
|
750 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
751 ; 64-C-DAG: c.un.d $f12, $f13
|
95
|
752 ; 64-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
753
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
754 ; 32-CMP-DAG: cmp.un.d $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
755 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
756 ; 32-CMP-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
757 ; 32-CMP-DAG: andi $2, $[[T2]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
758
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
759 ; 64-CMP-DAG: cmp.un.d $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
760 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
761 ; 64-CMP-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
762 ; 64-CMP-DAG: andi $2, $[[T2]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
763
|
120
|
764 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
765 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
766 ; MM32R3-DAG: c.un.d $f12, $f14
|
|
767 ; MM32R3-DAG: movt $[[T1]], $[[T0]], $fcc0
|
|
768
|
|
769 ; MM32R6-DAG: cmp.un.d $[[T0:f[0-9]+]], $f12, $f14
|
|
770 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
771 ; MMR6-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
|
772 ; MMR6-DAG: andi16 $2, $[[T2]], 1
|
|
773
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
774 %1 = fcmp ord double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
775 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
776 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
777 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
778
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
779 define i32 @ueq_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
780 ; ALL-LABEL: ueq_f64:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
781
|
95
|
782 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
783 ; 32-C-DAG: c.ueq.d $f12, $f14
|
95
|
784 ; 32-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
785
|
95
|
786 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
787 ; 64-C-DAG: c.ueq.d $f12, $f13
|
95
|
788 ; 64-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
789
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
790 ; 32-CMP-DAG: cmp.ueq.d $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
791 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
792 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
793
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
794 ; 64-CMP-DAG: cmp.ueq.d $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
795 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
796 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
797
|
120
|
798 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
799 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
800 ; MM32R3-DAG: c.ueq.d $f12, $f14
|
|
801 ; MM32R3-DAG: movf $[[T1]], $[[T0]], $fcc0
|
|
802
|
|
803 ; MM32R6-DAG: cmp.ueq.d $[[T0:f[0-9]+]], $f12, $f14
|
|
804 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
805 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
806
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
807 %1 = fcmp ueq double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
808 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
809 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
810 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
811
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
812 define i32 @ugt_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
813 ; ALL-LABEL: ugt_f64:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
814
|
95
|
815 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
816 ; 32-C-DAG: c.ole.d $f12, $f14
|
95
|
817 ; 32-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
818
|
95
|
819 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
820 ; 64-C-DAG: c.ole.d $f12, $f13
|
95
|
821 ; 64-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
822
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
823 ; 32-CMP-DAG: cmp.ult.d $[[T0:f[0-9]+]], $f14, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
824 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
825 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
826
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
827 ; 64-CMP-DAG: cmp.ult.d $[[T0:f[0-9]+]], $f13, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
828 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
829 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
830
|
120
|
831 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
832 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
833 ; MM32R3-DAG: c.ole.d $f12, $f14
|
|
834 ; MM32R3-DAG: movt $[[T1]], $[[T0]], $fcc0
|
|
835
|
|
836 ; MM32R6-DAG: cmp.ult.d $[[T0:f[0-9]+]], $f14, $f12
|
|
837 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
838 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
839
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
840 %1 = fcmp ugt double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
841 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
842 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
843 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
844
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
845 define i32 @uge_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
846 ; ALL-LABEL: uge_f64:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
847
|
95
|
848 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
849 ; 32-C-DAG: c.olt.d $f12, $f14
|
95
|
850 ; 32-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
851
|
95
|
852 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
853 ; 64-C-DAG: c.olt.d $f12, $f13
|
95
|
854 ; 64-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
855
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
856 ; 32-CMP-DAG: cmp.ule.d $[[T0:f[0-9]+]], $f14, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
857 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
858 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
859
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
860 ; 64-CMP-DAG: cmp.ule.d $[[T0:f[0-9]+]], $f13, $f12
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
861 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
862 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
863
|
120
|
864 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
865 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
866 ; MM32R3-DAG: c.olt.d $f12, $f14
|
|
867 ; MM32R3-DAG: movt $[[T1]], $[[T0]], $fcc0
|
|
868
|
|
869 ; MM32R6-DAG: cmp.ule.d $[[T0:f[0-9]+]], $f14, $f12
|
|
870 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
871 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
872
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
873 %1 = fcmp uge double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
874 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
875 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
876 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
877
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
878 define i32 @ult_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
879 ; ALL-LABEL: ult_f64:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
880
|
95
|
881 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
882 ; 32-C-DAG: c.ult.d $f12, $f14
|
95
|
883 ; 32-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
884
|
95
|
885 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
886 ; 64-C-DAG: c.ult.d $f12, $f13
|
95
|
887 ; 64-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
888
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
889 ; 32-CMP-DAG: cmp.ult.d $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
890 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
891 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
892
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
893 ; 64-CMP-DAG: cmp.ult.d $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
894 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
895 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
896
|
120
|
897 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
898 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
899 ; MM32R3-DAG: c.ult.d $f12, $f14
|
|
900 ; MM32R3-DAG: movf $[[T1]], $[[T0]], $fcc0
|
|
901
|
|
902 ; MM32R6-DAG: cmp.ult.d $[[T0:f[0-9]+]], $f12, $f14
|
|
903 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
904 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
905
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
906 %1 = fcmp ult double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
907 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
908 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
909 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
910
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
911 define i32 @ule_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
912 ; ALL-LABEL: ule_f64:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
913
|
95
|
914 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
915 ; 32-C-DAG: c.ule.d $f12, $f14
|
95
|
916 ; 32-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
917
|
95
|
918 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
919 ; 64-C-DAG: c.ule.d $f12, $f13
|
95
|
920 ; 64-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
921
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
922 ; 32-CMP-DAG: cmp.ule.d $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
923 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
924 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
925
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
926 ; 64-CMP-DAG: cmp.ule.d $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
927 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
928 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
929
|
120
|
930 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
931 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
932 ; MM32R3-DAG: c.ule.d $f12, $f14
|
|
933 ; MM32R3-DAG: movf $[[T1]], $[[T0]], $fcc0
|
|
934
|
|
935 ; MM32R6-DAG: cmp.ule.d $[[T0:f[0-9]+]], $f12, $f14
|
|
936 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
937 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
938
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
939 %1 = fcmp ule double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
940 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
941 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
942 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
943
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
944 define i32 @une_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
945 ; ALL-LABEL: une_f64:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
946
|
95
|
947 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
948 ; 32-C-DAG: c.eq.d $f12, $f14
|
95
|
949 ; 32-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
950
|
95
|
951 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
952 ; 64-C-DAG: c.eq.d $f12, $f13
|
95
|
953 ; 64-C: movt $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
954
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
955 ; 32-CMP-DAG: cmp.eq.d $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
956 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
957 ; 32-CMP-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
958 ; 32-CMP-DAG: andi $2, $[[T2]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
959
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
960 ; 64-CMP-DAG: cmp.eq.d $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
961 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
962 ; 64-CMP-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
963 ; 64-CMP-DAG: andi $2, $[[T2]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
964
|
120
|
965 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
966 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
967 ; MM32R3-DAG: c.eq.d $f12, $f14
|
|
968 ; MM32R3-DAG: movt $[[T1]], $[[T0]], $fcc0
|
|
969
|
|
970 ; MM32R6-DAG: cmp.eq.d $[[T0:f[0-9]+]], $f12, $f14
|
|
971 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
972 ; MMR6-DAG: not $[[T2:[0-9]+]], $[[T1]]
|
|
973 ; MMR6-DAG: andi16 $2, $[[T2]], 1
|
|
974
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
975 %1 = fcmp une double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
976 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
977 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
978 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
979
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
980 define i32 @uno_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
981 ; ALL-LABEL: uno_f64:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
982
|
95
|
983 ; 32-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
984 ; 32-C-DAG: c.un.d $f12, $f14
|
95
|
985 ; 32-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
986
|
95
|
987 ; 64-C-DAG: addiu $2, $zero, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
988 ; 64-C-DAG: c.un.d $f12, $f13
|
95
|
989 ; 64-C: movf $2, $zero, $fcc0
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
990
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
991 ; 32-CMP-DAG: cmp.un.d $[[T0:f[0-9]+]], $f12, $f14
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
992 ; 32-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
993 ; 32-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
994
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
995 ; 64-CMP-DAG: cmp.un.d $[[T0:f[0-9]+]], $f12, $f13
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
996 ; 64-CMP-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
997 ; 64-CMP-DAG: andi $2, $[[T1]], 1
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
998
|
120
|
999 ; MM32R3-DAG: li16 $[[T0:[0-9]+]], 0
|
|
1000 ; MM32R3-DAG: li16 $[[T1:[0-9]+]], 1
|
|
1001 ; MM32R3-DAG: c.un.d $f12, $f14
|
|
1002 ; MM32R3-DAG: movf $[[T1]], $[[T0]], $fcc0
|
|
1003
|
|
1004 ; MM32R6-DAG: cmp.un.d $[[T0:f[0-9]+]], $f12, $f14
|
|
1005 ; MMR6-DAG: mfc1 $[[T1:[0-9]+]], $[[T0]]
|
|
1006 ; MMR6-DAG: andi16 $2, $[[T1]], 1
|
|
1007
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1008 %1 = fcmp uno double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1009 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1010 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1011 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1012
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1013 define i32 @true_f64(double %a, double %b) nounwind {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1014 ; ALL-LABEL: true_f64:
|
120
|
1015 ; 32-C: addiu $2, $zero, 1
|
|
1016
|
|
1017 ; 32-CMP: addiu $2, $zero, 1
|
|
1018
|
|
1019 ; 64-C: addiu $2, $zero, 1
|
|
1020
|
|
1021 ; 64-CMP: addiu $2, $zero, 1
|
|
1022
|
|
1023 ; MM-DAG: li16 $2, 1
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1024
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1025 %1 = fcmp true double %a, %b
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1026 %2 = zext i1 %1 to i32
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1027 ret i32 %2
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1028 }
|
83
|
1029
|
|
1030 ; The optimizers sometimes produce setlt instead of setolt/setult.
|
|
1031 define float @bug1_f32(float %angle, float %at) #0 {
|
|
1032 entry:
|
|
1033 ; ALL-LABEL: bug1_f32:
|
|
1034
|
|
1035 ; 32-C-DAG: add.s $[[T0:f[0-9]+]], $f14, $f12
|
|
1036 ; 32-C-DAG: lwc1 $[[T1:f[0-9]+]], %lo($CPI32_0)(
|
|
1037 ; 32-C-DAG: c.ole.s $[[T0]], $[[T1]]
|
|
1038 ; 32-C-DAG: bc1t
|
|
1039
|
|
1040 ; 32-CMP-DAG: add.s $[[T0:f[0-9]+]], $f14, $f12
|
|
1041 ; 32-CMP-DAG: lwc1 $[[T1:f[0-9]+]], %lo($CPI32_0)(
|
|
1042 ; 32-CMP-DAG: cmp.le.s $[[T2:f[0-9]+]], $[[T0]], $[[T1]]
|
|
1043 ; 32-CMP-DAG: mfc1 $[[T3:[0-9]+]], $[[T2]]
|
|
1044 ; FIXME: This instruction is redundant.
|
|
1045 ; 32-CMP-DAG: andi $[[T4:[0-9]+]], $[[T3]], 1
|
120
|
1046 ; 32-CMP-DAG: bnezc $[[T4]],
|
83
|
1047
|
|
1048 ; 64-C-DAG: add.s $[[T0:f[0-9]+]], $f13, $f12
|
121
|
1049 ; 64-C-DAG: lwc1 $[[T1:f[0-9]+]], %lo(.LCPI32_0)(
|
83
|
1050 ; 64-C-DAG: c.ole.s $[[T0]], $[[T1]]
|
|
1051 ; 64-C-DAG: bc1t
|
|
1052
|
|
1053 ; 64-CMP-DAG: add.s $[[T0:f[0-9]+]], $f13, $f12
|
121
|
1054 ; 64-CMP-DAG: lwc1 $[[T1:f[0-9]+]], %lo(.LCPI32_0)(
|
83
|
1055 ; 64-CMP-DAG: cmp.le.s $[[T2:f[0-9]+]], $[[T0]], $[[T1]]
|
|
1056 ; 64-CMP-DAG: mfc1 $[[T3:[0-9]+]], $[[T2]]
|
|
1057 ; FIXME: This instruction is redundant.
|
|
1058 ; 64-CMP-DAG: andi $[[T4:[0-9]+]], $[[T3]], 1
|
120
|
1059 ; 64-CMP-DAG: bnezc $[[T4]],
|
|
1060
|
|
1061 ; MM32R3-DAG: add.s $[[T0:f[0-9]+]], $f14, $f12
|
|
1062 ; MM32R3-DAG: lui $[[T1:[0-9]+]], %hi($CPI32_0)
|
|
1063 ; MM32R3-DAG: lwc1 $[[T2:f[0-9]+]], %lo($CPI32_0)($[[T1]])
|
|
1064 ; MM32R3-DAG: c.ole.s $[[T0]], $[[T2]]
|
|
1065 ; MM32R3-DAG: bc1t
|
|
1066
|
|
1067 ; MM32R6-DAG: add.s $[[T0:f[0-9]+]], $f14, $f12
|
|
1068 ; MM32R6-DAG: lui $[[T1:[0-9]+]], %hi($CPI32_0)
|
|
1069 ; MM32R6-DAG: lwc1 $[[T2:f[0-9]+]], %lo($CPI32_0)($[[T1]])
|
|
1070 ; MM32R6-DAG: cmp.le.s $[[T3:f[0-9]+]], $[[T0]], $[[T2]]
|
|
1071 ; MM32R6-DAG: mfc1 $[[T4:[0-9]+]], $[[T3:f[0-9]+]]
|
|
1072 ; MM32R6-DAG: andi16 $[[T5:[0-9]+]], $[[T4]], 1
|
134
|
1073 ; MM32R6-DAG: bnezc $[[T5]],
|
83
|
1074
|
|
1075 %add = fadd fast float %at, %angle
|
|
1076 %cmp = fcmp ogt float %add, 1.000000e+00
|
|
1077 br i1 %cmp, label %if.then, label %if.end
|
|
1078
|
|
1079 if.then:
|
|
1080 %sub = fadd fast float %add, -1.000000e+00
|
|
1081 br label %if.end
|
|
1082
|
|
1083 if.end:
|
|
1084 %theta.0 = phi float [ %sub, %if.then ], [ %add, %entry ]
|
|
1085 ret float %theta.0
|
|
1086 }
|
|
1087
|
|
1088 ; The optimizers sometimes produce setlt instead of setolt/setult.
|
|
1089 define double @bug1_f64(double %angle, double %at) #0 {
|
|
1090 entry:
|
|
1091 ; ALL-LABEL: bug1_f64:
|
|
1092
|
|
1093 ; 32-C-DAG: add.d $[[T0:f[0-9]+]], $f14, $f12
|
|
1094 ; 32-C-DAG: ldc1 $[[T1:f[0-9]+]], %lo($CPI33_0)(
|
|
1095 ; 32-C-DAG: c.ole.d $[[T0]], $[[T1]]
|
|
1096 ; 32-C-DAG: bc1t
|
|
1097
|
|
1098 ; 32-CMP-DAG: add.d $[[T0:f[0-9]+]], $f14, $f12
|
|
1099 ; 32-CMP-DAG: ldc1 $[[T1:f[0-9]+]], %lo($CPI33_0)(
|
|
1100 ; 32-CMP-DAG: cmp.le.d $[[T2:f[0-9]+]], $[[T0]], $[[T1]]
|
|
1101 ; 32-CMP-DAG: mfc1 $[[T3:[0-9]+]], $[[T2]]
|
|
1102 ; FIXME: This instruction is redundant.
|
|
1103 ; 32-CMP-DAG: andi $[[T4:[0-9]+]], $[[T3]], 1
|
120
|
1104 ; 32-CMP-DAG: bnezc $[[T4]],
|
83
|
1105
|
|
1106 ; 64-C-DAG: add.d $[[T0:f[0-9]+]], $f13, $f12
|
121
|
1107 ; 64-C-DAG: ldc1 $[[T1:f[0-9]+]], %lo(.LCPI33_0)(
|
83
|
1108 ; 64-C-DAG: c.ole.d $[[T0]], $[[T1]]
|
|
1109 ; 64-C-DAG: bc1t
|
|
1110
|
|
1111 ; 64-CMP-DAG: add.d $[[T0:f[0-9]+]], $f13, $f12
|
121
|
1112 ; 64-CMP-DAG: ldc1 $[[T1:f[0-9]+]], %lo(.LCPI33_0)(
|
83
|
1113 ; 64-CMP-DAG: cmp.le.d $[[T2:f[0-9]+]], $[[T0]], $[[T1]]
|
|
1114 ; 64-CMP-DAG: mfc1 $[[T3:[0-9]+]], $[[T2]]
|
|
1115 ; FIXME: This instruction is redundant.
|
|
1116 ; 64-CMP-DAG: andi $[[T4:[0-9]+]], $[[T3]], 1
|
120
|
1117 ; 64-CMP-DAG: bnezc $[[T4]],
|
|
1118
|
|
1119 ; MM32R3-DAG: add.d $[[T0:f[0-9]+]], $f14, $f12
|
|
1120 ; MM32R3-DAG: lui $[[T1:[0-9]+]], %hi($CPI33_0)
|
|
1121 ; MM32R3-DAG: ldc1 $[[T2:f[0-9]+]], %lo($CPI33_0)($[[T1]])
|
|
1122 ; MM32R3-DAG: c.ole.d $[[T0]], $[[T2]]
|
|
1123 ; MM32R3-DAG: bc1t
|
|
1124
|
|
1125 ; MM32R6-DAG: add.d $[[T0:f[0-9]+]], $f14, $f12
|
|
1126 ; MM32R6-DAG: lui $[[T1:[0-9]+]], %hi($CPI33_0)
|
|
1127 ; MM32R6-DAG: ldc1 $[[T2:f[0-9]+]], %lo($CPI33_0)($[[T1]])
|
|
1128 ; MM32R6-DAG: cmp.le.d $[[T3:f[0-9]+]], $[[T0]], $[[T2]]
|
|
1129 ; MM32R6-DAG: mfc1 $[[T4:[0-9]+]], $[[T3]]
|
|
1130 ; MM32R6-DAG: andi16 $[[T5:[0-9]+]], $[[T4]], 1
|
134
|
1131 ; MM32R6-DAG: bnezc $[[T5]],
|
83
|
1132
|
|
1133 %add = fadd fast double %at, %angle
|
|
1134 %cmp = fcmp ogt double %add, 1.000000e+00
|
|
1135 br i1 %cmp, label %if.then, label %if.end
|
|
1136
|
|
1137 if.then:
|
|
1138 %sub = fadd fast double %add, -1.000000e+00
|
|
1139 br label %if.end
|
|
1140
|
|
1141 if.end:
|
|
1142 %theta.0 = phi double [ %sub, %if.then ], [ %add, %entry ]
|
|
1143 ret double %theta.0
|
|
1144 }
|
|
1145
|
|
1146 attributes #0 = { nounwind readnone "no-nans-fp-math"="true" }
|