1*c85f09ccSJohn Levon #define	bool	_Bool
2*c85f09ccSJohn Levon 
bfimp(float a)3*c85f09ccSJohn Levon bool bfimp(float a) { return a; }
bfexp(float a)4*c85f09ccSJohn Levon bool bfexp(float a) { return (bool)a; }
5*c85f09ccSJohn Levon 
bfnot(float a)6*c85f09ccSJohn Levon bool bfnot(float a) { return !a; }
ifnot(float a)7*c85f09ccSJohn Levon int  ifnot(float a) { return !a; }
bfior(float a,float b)8*c85f09ccSJohn Levon bool bfior(float a, float b) { return a || b; }
ifior(float a,float b)9*c85f09ccSJohn Levon int  ifior(float a, float b) { return a || b; }
bfand(float a,float b)10*c85f09ccSJohn Levon bool bfand(float a, float b) { return a && b; }
ifand(float a,float b)11*c85f09ccSJohn Levon int  ifand(float a, float b) { return a && b; }
12*c85f09ccSJohn Levon 
13*c85f09ccSJohn Levon /*
14*c85f09ccSJohn Levon  * check-name: bool context fp
15*c85f09ccSJohn Levon  * check-command: test-linearize -Wno-decl $file
16*c85f09ccSJohn Levon  *
17*c85f09ccSJohn Levon  * check-output-start
18*c85f09ccSJohn Levon bfimp:
19*c85f09ccSJohn Levon .L0:
20*c85f09ccSJohn Levon 	<entry-point>
21*c85f09ccSJohn Levon 	setfval.32  %r2 <- 0.000000e+00
22*c85f09ccSJohn Levon 	fcmpune.1   %r3 <- %arg1, %r2
23*c85f09ccSJohn Levon 	ret.1       %r3
24*c85f09ccSJohn Levon 
25*c85f09ccSJohn Levon 
26*c85f09ccSJohn Levon bfexp:
27*c85f09ccSJohn Levon .L2:
28*c85f09ccSJohn Levon 	<entry-point>
29*c85f09ccSJohn Levon 	setfval.32  %r6 <- 0.000000e+00
30*c85f09ccSJohn Levon 	fcmpune.1   %r7 <- %arg1, %r6
31*c85f09ccSJohn Levon 	ret.1       %r7
32*c85f09ccSJohn Levon 
33*c85f09ccSJohn Levon 
34*c85f09ccSJohn Levon bfnot:
35*c85f09ccSJohn Levon .L4:
36*c85f09ccSJohn Levon 	<entry-point>
37*c85f09ccSJohn Levon 	setfval.32  %r10 <- 0.000000e+00
38*c85f09ccSJohn Levon 	fcmpoeq.1   %r12 <- %arg1, %r10
39*c85f09ccSJohn Levon 	ret.1       %r12
40*c85f09ccSJohn Levon 
41*c85f09ccSJohn Levon 
42*c85f09ccSJohn Levon ifnot:
43*c85f09ccSJohn Levon .L6:
44*c85f09ccSJohn Levon 	<entry-point>
45*c85f09ccSJohn Levon 	setfval.32  %r15 <- 0.000000e+00
46*c85f09ccSJohn Levon 	fcmpoeq.32  %r16 <- %arg1, %r15
47*c85f09ccSJohn Levon 	ret.32      %r16
48*c85f09ccSJohn Levon 
49*c85f09ccSJohn Levon 
50*c85f09ccSJohn Levon bfior:
51*c85f09ccSJohn Levon .L8:
52*c85f09ccSJohn Levon 	<entry-point>
53*c85f09ccSJohn Levon 	setfval.32  %r19 <- 0.000000e+00
54*c85f09ccSJohn Levon 	fcmpune.1   %r20 <- %arg1, %r19
55*c85f09ccSJohn Levon 	fcmpune.1   %r23 <- %arg2, %r19
56*c85f09ccSJohn Levon 	or.1        %r24 <- %r20, %r23
57*c85f09ccSJohn Levon 	ret.1       %r24
58*c85f09ccSJohn Levon 
59*c85f09ccSJohn Levon 
60*c85f09ccSJohn Levon ifior:
61*c85f09ccSJohn Levon .L10:
62*c85f09ccSJohn Levon 	<entry-point>
63*c85f09ccSJohn Levon 	setfval.32  %r29 <- 0.000000e+00
64*c85f09ccSJohn Levon 	fcmpune.1   %r30 <- %arg1, %r29
65*c85f09ccSJohn Levon 	fcmpune.1   %r33 <- %arg2, %r29
66*c85f09ccSJohn Levon 	or.1        %r34 <- %r30, %r33
67*c85f09ccSJohn Levon 	zext.32     %r35 <- (1) %r34
68*c85f09ccSJohn Levon 	ret.32      %r35
69*c85f09ccSJohn Levon 
70*c85f09ccSJohn Levon 
71*c85f09ccSJohn Levon bfand:
72*c85f09ccSJohn Levon .L12:
73*c85f09ccSJohn Levon 	<entry-point>
74*c85f09ccSJohn Levon 	setfval.32  %r38 <- 0.000000e+00
75*c85f09ccSJohn Levon 	fcmpune.1   %r39 <- %arg1, %r38
76*c85f09ccSJohn Levon 	fcmpune.1   %r42 <- %arg2, %r38
77*c85f09ccSJohn Levon 	and.1       %r43 <- %r39, %r42
78*c85f09ccSJohn Levon 	ret.1       %r43
79*c85f09ccSJohn Levon 
80*c85f09ccSJohn Levon 
81*c85f09ccSJohn Levon ifand:
82*c85f09ccSJohn Levon .L14:
83*c85f09ccSJohn Levon 	<entry-point>
84*c85f09ccSJohn Levon 	setfval.32  %r48 <- 0.000000e+00
85*c85f09ccSJohn Levon 	fcmpune.1   %r49 <- %arg1, %r48
86*c85f09ccSJohn Levon 	fcmpune.1   %r52 <- %arg2, %r48
87*c85f09ccSJohn Levon 	and.1       %r53 <- %r49, %r52
88*c85f09ccSJohn Levon 	zext.32     %r54 <- (1) %r53
89*c85f09ccSJohn Levon 	ret.32      %r54
90*c85f09ccSJohn Levon 
91*c85f09ccSJohn Levon 
92*c85f09ccSJohn Levon  * check-output-end
93*c85f09ccSJohn Levon  */
94