diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/arm/fixed_float_conversion.c')
-rw-r--r-- | gcc/testsuite/gcc.target/arm/fixed_float_conversion.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/arm/fixed_float_conversion.c b/gcc/testsuite/gcc.target/arm/fixed_float_conversion.c new file mode 100644 index 0000000000..078b103745 --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/fixed_float_conversion.c @@ -0,0 +1,20 @@ +/* Check that vcvt is used for fixed and float data conversions. */ +/* { dg-do compile } */ +/* { dg-require-effective-target arm_vfp3_ok } */ +/* { dg-options "-O1" } */ +/* { dg-add-options arm_vfp3 } */ + +float +fixed_to_float (int i) +{ + return ((float) i / (1 << 16)); +} + +int +float_to_fixed (float f) +{ + return ((int) (f * (1 << 16))); +} + +/* { dg-final { scan-assembler "vcvt.f32.s32" } } */ +/* { dg-final { scan-assembler "vcvt.s32.f32" } } */ |