82 lines
1.2 KiB
ArmAsm
82 lines
1.2 KiB
ArmAsm
# 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
|