1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
extern double g;
int fcmp_eq(double a) { return (g == a); }
int fcmp_ne(double a) { return (g != a); }
int fcmp_gt(double a) { return (g > a); }
int fcmp_ge(double a) { return (g >= a); }
int fcmp_le(double a) { return (g <= a); }
int fcmp_lt(double a) { return (g < a); }
int nfcmp_ne(double a) { return !(g == a); }
int nfcmp_eq(double a) { return !(g != a); }
int nfcmp_le(double a) { return !(g > a); }
int nfcmp_lt(double a) { return !(g >= a); }
int nfcmp_gt(double a) { return !(g <= a); }
int nfcmp_ge(double a) { return !(g < a); }
/*
* check-name: canonical-cmp
* check-command: test-linearize -Wno-decl $file
*
* check-output-exclude: \$123,
*
* check-output-start
fcmp_eq:
.L0:
<entry-point>
load.64 %r1 <- 0[g]
fcmpoeq.32 %r3 <- %r1, %arg1
ret.32 %r3
fcmp_ne:
.L2:
<entry-point>
load.64 %r5 <- 0[g]
fcmpune.32 %r7 <- %r5, %arg1
ret.32 %r7
fcmp_gt:
.L4:
<entry-point>
load.64 %r9 <- 0[g]
fcmpogt.32 %r11 <- %r9, %arg1
ret.32 %r11
fcmp_ge:
.L6:
<entry-point>
load.64 %r13 <- 0[g]
fcmpoge.32 %r15 <- %r13, %arg1
ret.32 %r15
fcmp_le:
.L8:
<entry-point>
load.64 %r17 <- 0[g]
fcmpole.32 %r19 <- %r17, %arg1
ret.32 %r19
fcmp_lt:
.L10:
<entry-point>
load.64 %r21 <- 0[g]
fcmpolt.32 %r23 <- %r21, %arg1
ret.32 %r23
nfcmp_ne:
.L12:
<entry-point>
load.64 %r25 <- 0[g]
fcmpune.32 %r28 <- %r25, %arg1
ret.32 %r28
nfcmp_eq:
.L14:
<entry-point>
load.64 %r30 <- 0[g]
fcmpoeq.32 %r33 <- %r30, %arg1
ret.32 %r33
nfcmp_le:
.L16:
<entry-point>
load.64 %r35 <- 0[g]
fcmpule.32 %r38 <- %r35, %arg1
ret.32 %r38
nfcmp_lt:
.L18:
<entry-point>
load.64 %r40 <- 0[g]
fcmpult.32 %r43 <- %r40, %arg1
ret.32 %r43
nfcmp_gt:
.L20:
<entry-point>
load.64 %r45 <- 0[g]
fcmpugt.32 %r48 <- %r45, %arg1
ret.32 %r48
nfcmp_ge:
.L22:
<entry-point>
load.64 %r50 <- 0[g]
fcmpuge.32 %r53 <- %r50, %arg1
ret.32 %r53
* check-output-end
*/
|