# mach: aarch64 # Check the FP min/max number instructions: fminnm, fmaxnm, dminnm, dmaxnm. # For min, check 2/1, 1/0, -1/-Inf. # For max, check 1/2, -1/0, 1/+inf. .include "testutils.inc" start fmov s0, #2.0 fmov s1, #1.0 fminnm s2, s0, s1 fcmp s2, s1 bne .Lfailure fmov d0, #2.0 fmov d1, #1.0 fminnm d2, d0, d1 fcmp d2, d1 bne .Lfailure fmov s0, #1.0 fmov s1, wzr fminnm s2, s0, s1 fcmp s2, s1 bne .Lfailure fmov d0, #1.0 fmov d1, xzr fminnm d2, d0, d1 fcmp d2, d1 bne .Lfailure fmov s0, #-1.0 fmov s1, wzr fdiv s1, s0, s1 fminnm s2, s0, s1 fcmp s2, s1 bne .Lfailure fmov d0, #-1.0 fmov d1, xzr fdiv d1, d0, d1 fminnm d1, d0, d1 fcmp d0, d0 bne .Lfailure fmov s0, #1.0 fmov s1, #2.0 fmaxnm s2, s0, s1 fcmp s2, s1 bne .Lfailure fmov d0, #1.0 fmov d1, #2.0 fmaxnm d2, d0, d1 fcmp d2, d1 bne .Lfailure fmov s0, #-1.0 fmov s1, wzr fmaxnm s2, s0, s1 fcmp s2, s1 bne .Lfailure fmov d0, #-1.0 fmov d1, xzr fmaxnm d2, d0, d1 fcmp d2, d1 bne .Lfailure fmov s0, #1.0 fmov s1, wzr fdiv s1, s0, s1 fmaxnm s2, s0, s1 fcmp s2, s1 bne .Lfailure fmov d0, #1.0 fmov d1, xzr fdiv d1, d0, d1 fmaxnm d1, d0, d1 fcmp d0, d0 bne .Lfailure pass .Lfailure: fail