Skip to content
Snippets Groups Projects
Commit 12c0399e authored by Matthew Gretton-Dann's avatar Matthew Gretton-Dann
Browse files

Add files forgotten in last commit (ChangeLog has them already):

gcc/testsuite:
	* gcc.target/arm/fma.c: New testcase.
	* gcc.target/arm/fma.h: Likewise.
	* gcc.target/arm/fma-sp.c: Likewise.

From-SVN: r189284
parent 76f722f4
No related branches found
No related tags found
No related merge requests found
/* { dg-do compile } */
/* { dg-options "-O2 -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mthumb" } */
#include "fma.h"
/* { dg-final { scan-assembler-not "vfma\.f64\td\[0-9\]" } } */
/* { dg-final { scan-assembler-times "vfma\.f32\ts\[0-9\]" 1 } } */
/* { dg-final { scan-assembler-not "vfms\.f64\td\[0-9\]" } } */
/* { dg-final { scan-assembler-times "vfms\.f32\ts\[0-9\]" 1 } } */
/* { dg-final { scan-assembler-not "vfnma\.f64\td\[0-9\]" } } */
/* { dg-final { scan-assembler-times "vfnma\.f32\ts\[0-9\]" 1 } } */
/* { dg-final { scan-assembler-not "vfnms\.f64\td\[0-9\]" } } */
/* { dg-final { scan-assembler-times "vfnms\.f32\ts\[0-9\]" 1 } } */
/* { dg-do compile } */
/* { dg-options "-O2 -mcpu=cortex-a15 -mfpu=vfpv4" } */
#include "fma.h"
/* { dg-final { scan-assembler-times "vfma\.f64\td\[0-9\]" 1 } } */
/* { dg-final { scan-assembler-times "vfma\.f32\ts\[0-9\]" 1 } } */
/* { dg-final { scan-assembler-times "vfms\.f64\td\[0-9\]" 1 } } */
/* { dg-final { scan-assembler-times "vfms\.f32\ts\[0-9\]" 1 } } */
/* { dg-final { scan-assembler-times "vfnma\.f64\td\[0-9\]" 1 } } */
/* { dg-final { scan-assembler-times "vfnma\.f32\ts\[0-9\]" 1 } } */
/* { dg-final { scan-assembler-times "vfnms\.f64\td\[0-9\]" 1 } } */
/* { dg-final { scan-assembler-times "vfnms\.f32\ts\[0-9\]" 1 } } */
extern double fma (double, double, double);
extern float fmaf (float, float, float);
float
vfma32 (float x, float y, float z)
{
return fmaf (x, y, z);
}
float
vfms32 (float x, float y, float z)
{
return fmaf (-x, y, z);
}
float
vfnms32 (float x, float y, float z)
{
return fmaf (x, y, -z);
}
float
vfnma32 (float x, float y, float z)
{
return fmaf (-x, y, -z);
}
double
vfma64 (double x, double y, double z)
{
return fma (x, y, z);
}
double
vfms64 (double x, double y, double z)
{
return fma (-x, y, z);
}
double
vfnms64 (double x, double y, double z)
{
return fma (x, y, -z);
}
double
vfnma64 (double x, double y, double z)
{
return fma (-x, y, -z);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment