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