1# mach: aarch64 2 3# Check the FP compare instructions: fcmps, fcmpzs, fcmpes, fcmpzes, fcmpd, 4# fcmpzd, fcmped, fcmpzed. 5# For 1 operand compares, check 0, 1, -1, +Inf, -Inf. 6# For 2 operand compares, check 1/1, 1/-2, -1/2, +Inf/+Inf, +Inf/-Inf. 7# FIXME: Check for qNaN and sNaN when exception raising support added. 8 9.include "testutils.inc" 10 11 start 12 fmov s0, wzr 13 fcmp s0, #0.0 14 bne .Lfailure 15 fcmpe s0, #0.0 16 bne .Lfailure 17 fmov d0, xzr 18 fcmp d0, #0.0 19 bne .Lfailure 20 fcmpe d0, #0.0 21 bne .Lfailure 22 23 fmov s0, #1.0 24 fcmp s0, #0.0 25 blo .Lfailure 26 fcmpe s0, #0.0 27 blo .Lfailure 28 fmov d0, #1.0 29 fcmp d0, #0.0 30 blo .Lfailure 31 fcmpe d0, #0.0 32 blo .Lfailure 33 34 fmov s0, #-1.0 35 fcmp s0, #0.0 36 bpl .Lfailure 37 fcmpe s0, #0.0 38 bpl .Lfailure 39 fmov d0, #-1.0 40 fcmp d0, #0.0 41 bpl .Lfailure 42 fcmpe d0, #0.0 43 bpl .Lfailure 44 45 fmov s0, #1.0 46 fmov s1, wzr 47 fdiv s0, s0, s1 48 fcmp s0, #0.0 49 blo .Lfailure 50 fcmpe s0, #0.0 51 blo .Lfailure 52 fmov d0, #1.0 53 fmov d1, xzr 54 fdiv d0, d0, d1 55 fcmp d0, #0.0 56 blo .Lfailure 57 fcmpe d0, #0.0 58 blo .Lfailure 59 60 fmov s0, #-1.0 61 fmov s1, wzr 62 fdiv s0, s0, s1 63 fcmp s0, #0.0 64 bpl .Lfailure 65 fcmpe s0, #0.0 66 bpl .Lfailure 67 fmov d0, #-1.0 68 fmov d1, xzr 69 fdiv d0, d0, d1 70 fcmp d0, #0.0 71 bpl .Lfailure 72 fcmpe d0, #0.0 73 bpl .Lfailure 74 75 fmov s0, #1.0 76 fmov s1, #1.0 77 fcmp s0, s1 78 bne .Lfailure 79 fcmpe s0, s1 80 bne .Lfailure 81 fmov d0, #1.0 82 fmov d1, #1.0 83 fcmp d0, d1 84 bne .Lfailure 85 fcmpe d0, d1 86 bne .Lfailure 87 88 fmov s0, #1.0 89 fmov s1, #-2.0 90 fcmp s0, s1 91 blo .Lfailure 92 fcmpe s0, s1 93 blo .Lfailure 94 fmov d0, #1.0 95 fmov d1, #-2.0 96 fcmp d0, d1 97 blo .Lfailure 98 fcmpe d0, d1 99 blo .Lfailure 100 101 fmov s0, #-1.0 102 fmov s1, #2.0 103 fcmp s0, s1 104 bpl .Lfailure 105 fcmpe s0, s1 106 bpl .Lfailure 107 fmov d0, #-1.0 108 fmov d1, #2.0 109 fcmp d0, d1 110 bpl .Lfailure 111 fcmpe d0, d1 112 bpl .Lfailure 113 114 fmov s0, #1.0 115 fmov s1, wzr 116 fdiv s0, s0, s1 117 fcmp s0, s0 118 bne .Lfailure 119 fcmpe s0, s0 120 bne .Lfailure 121 fmov s1, #-1.0 122 fmov s2, wzr 123 fdiv s1, s1, s2 124 fcmp s0, s1 125 blo .Lfailure 126 fcmpe s0, s1 127 blo .Lfailure 128 129 fmov d0, #1.0 130 fmov d1, xzr 131 fdiv d0, d0, d1 132 fcmp d0, d0 133 bne .Lfailure 134 fcmpe d0, d0 135 bne .Lfailure 136 fmov d1, #-1.0 137 fmov d2, xzr 138 fdiv d1, d1, d2 139 fcmp d0, d1 140 blo .Lfailure 141 fcmpe d0, d1 142 blo .Lfailure 143 144 pass 145.Lfailure: 146 fail 147