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