# mach: aarch64 # Check the FP compare instructions: fcmps, fcmpzs, fcmpes, fcmpzes, fcmpd, # fcmpzd, fcmped, fcmpzed. # For 1 operand compares, check 0, 1, -1, +Inf, -Inf. # For 2 operand compares, check 1/1, 1/-2, -1/2, +Inf/+Inf, +Inf/-Inf. # FIXME: Check for qNaN and sNaN when exception raising support added. .include "testutils.inc" start fmov s0, wzr fcmp s0, #0.0 bne .Lfailure fcmpe s0, #0.0 bne .Lfailure fmov d0, xzr fcmp d0, #0.0 bne .Lfailure fcmpe d0, #0.0 bne .Lfailure fmov s0, #1.0 fcmp s0, #0.0 blo .Lfailure fcmpe s0, #0.0 blo .Lfailure fmov d0, #1.0 fcmp d0, #0.0 blo .Lfailure fcmpe d0, #0.0 blo .Lfailure fmov s0, #-1.0 fcmp s0, #0.0 bpl .Lfailure fcmpe s0, #0.0 bpl .Lfailure fmov d0, #-1.0 fcmp d0, #0.0 bpl .Lfailure fcmpe d0, #0.0 bpl .Lfailure fmov s0, #1.0 fmov s1, wzr fdiv s0, s0, s1 fcmp s0, #0.0 blo .Lfailure fcmpe s0, #0.0 blo .Lfailure fmov d0, #1.0 fmov d1, xzr fdiv d0, d0, d1 fcmp d0, #0.0 blo .Lfailure fcmpe d0, #0.0 blo .Lfailure fmov s0, #-1.0 fmov s1, wzr fdiv s0, s0, s1 fcmp s0, #0.0 bpl .Lfailure fcmpe s0, #0.0 bpl .Lfailure fmov d0, #-1.0 fmov d1, xzr fdiv d0, d0, d1 fcmp d0, #0.0 bpl .Lfailure fcmpe d0, #0.0 bpl .Lfailure fmov s0, #1.0 fmov s1, #1.0 fcmp s0, s1 bne .Lfailure fcmpe s0, s1 bne .Lfailure fmov d0, #1.0 fmov d1, #1.0 fcmp d0, d1 bne .Lfailure fcmpe d0, d1 bne .Lfailure fmov s0, #1.0 fmov s1, #-2.0 fcmp s0, s1 blo .Lfailure fcmpe s0, s1 blo .Lfailure fmov d0, #1.0 fmov d1, #-2.0 fcmp d0, d1 blo .Lfailure fcmpe d0, d1 blo .Lfailure fmov s0, #-1.0 fmov s1, #2.0 fcmp s0, s1 bpl .Lfailure fcmpe s0, s1 bpl .Lfailure fmov d0, #-1.0 fmov d1, #2.0 fcmp d0, d1 bpl .Lfailure fcmpe d0, d1 bpl .Lfailure fmov s0, #1.0 fmov s1, wzr fdiv s0, s0, s1 fcmp s0, s0 bne .Lfailure fcmpe s0, s0 bne .Lfailure fmov s1, #-1.0 fmov s2, wzr fdiv s1, s1, s2 fcmp s0, s1 blo .Lfailure fcmpe s0, s1 blo .Lfailure fmov d0, #1.0 fmov d1, xzr fdiv d0, d0, d1 fcmp d0, d0 bne .Lfailure fcmpe d0, d0 bne .Lfailure fmov d1, #-1.0 fmov d2, xzr fdiv d1, d1, d2 fcmp d0, d1 blo .Lfailure fcmpe d0, d1 blo .Lfailure pass .Lfailure: fail