1*1c468f90Schristos# mach: aarch64 2*1c468f90Schristos 3*1c468f90Schristos# Check the FP Conditional Select instruction: fcsel. 4*1c468f90Schristos# Check 1/1 eq/neg, and 1/2 lt/gt. 5*1c468f90Schristos 6*1c468f90Schristos.include "testutils.inc" 7*1c468f90Schristos 8*1c468f90Schristos start 9*1c468f90Schristos fmov s0, #1.0 10*1c468f90Schristos fmov s1, #1.0 11*1c468f90Schristos fmov s2, #-1.0 12*1c468f90Schristos fcmp s0, s1 13*1c468f90Schristos fcsel s3, s0, s2, eq 14*1c468f90Schristos fcmp s3, s0 15*1c468f90Schristos bne .Lfailure 16*1c468f90Schristos fcsel s3, s0, s2, ne 17*1c468f90Schristos fcmp s3, s2 18*1c468f90Schristos bne .Lfailure 19*1c468f90Schristos 20*1c468f90Schristos fmov s0, #1.0 21*1c468f90Schristos fmov s1, #2.0 22*1c468f90Schristos fcmp s0, s1 23*1c468f90Schristos fcsel s3, s0, s2, lt 24*1c468f90Schristos fcmp s3, s0 25*1c468f90Schristos bne .Lfailure 26*1c468f90Schristos fcsel s3, s0, s2, gt 27*1c468f90Schristos fcmp s3, s2 28*1c468f90Schristos bne .Lfailure 29*1c468f90Schristos 30*1c468f90Schristos fmov d0, #1.0 31*1c468f90Schristos fmov d1, #1.0 32*1c468f90Schristos fmov d2, #-1.0 33*1c468f90Schristos fcmp d0, d1 34*1c468f90Schristos fcsel d3, d0, d2, eq 35*1c468f90Schristos fcmp d3, d0 36*1c468f90Schristos bne .Lfailure 37*1c468f90Schristos fcsel d3, d0, d2, ne 38*1c468f90Schristos fcmp d3, d2 39*1c468f90Schristos bne .Lfailure 40*1c468f90Schristos 41*1c468f90Schristos fmov d0, #1.0 42*1c468f90Schristos fmov d1, #2.0 43*1c468f90Schristos fcmp d0, d1 44*1c468f90Schristos fcsel d3, d0, d2, lt 45*1c468f90Schristos fcmp d3, d0 46*1c468f90Schristos bne .Lfailure 47*1c468f90Schristos fcsel d3, d0, d2, gt 48*1c468f90Schristos fcmp d3, d2 49*1c468f90Schristos bne .Lfailure 50*1c468f90Schristos 51*1c468f90Schristos pass 52*1c468f90Schristos.Lfailure: 53*1c468f90Schristos fail 54