rs6000: Tests for setnbc
2020-05-07 Segher Boessenkool <segher@kernel.crashing.org> * gcc.target/powerpc/setnbc.h: New. * gcc.target/powerpc/setnbceq.c: New. * gcc.target/powerpc/setnbcge.c: New. * gcc.target/powerpc/setnbcgt.c: New. * gcc.target/powerpc/setnbcle.c: New. * gcc.target/powerpc/setnbclt.c: New. * gcc.target/powerpc/setnbcne.c: New.
This commit is contained in:
parent
057e1eedac
commit
74d58ad2c2
@ -1,3 +1,13 @@
|
||||
2020-05-07 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
|
||||
* gcc.target/powerpc/setnbc.h: New.
|
||||
* gcc.target/powerpc/setnbceq.c: New.
|
||||
* gcc.target/powerpc/setnbcge.c: New.
|
||||
* gcc.target/powerpc/setnbcgt.c: New.
|
||||
* gcc.target/powerpc/setnbcle.c: New.
|
||||
* gcc.target/powerpc/setnbclt.c: New.
|
||||
* gcc.target/powerpc/setnbcne.c: New.
|
||||
|
||||
2020-05-07 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
|
||||
* gcc.target/powerpc/setbc.h: New.
|
||||
|
27
gcc/testsuite/gcc.target/powerpc/setnbc.h
Normal file
27
gcc/testsuite/gcc.target/powerpc/setnbc.h
Normal file
@ -0,0 +1,27 @@
|
||||
#define XSTR(a,b) a ## b
|
||||
#define T(a,b) XSTR(a,b)
|
||||
|
||||
int T(NAME,ii)(int a, int b) { return -(a CODE b); }
|
||||
int T(NAME,il)(long a, long b) { return -(a CODE b); }
|
||||
long T(NAME,li)(int a, int b) { return -(a CODE b); }
|
||||
long T(NAME,ll)(long a, long b) { return -(a CODE b); }
|
||||
|
||||
int T(NAME,iin0)(int a) { return -(a CODE 0); }
|
||||
int T(NAME,iln0)(long a) { return -(a CODE 0); }
|
||||
long T(NAME,lin0)(int a) { return -(a CODE 0); }
|
||||
long T(NAME,lln0)(long a) { return -(a CODE 0); }
|
||||
|
||||
int T(NAME,iin1)(int a) { return -(a CODE 1); }
|
||||
int T(NAME,iln1)(long a) { return -(a CODE 1); }
|
||||
long T(NAME,lin1)(int a) { return -(a CODE 1); }
|
||||
long T(NAME,lln1)(long a) { return -(a CODE 1); }
|
||||
|
||||
int T(NAME,iinm1)(int a) { return -(a CODE -1); }
|
||||
int T(NAME,ilnm1)(long a) { return -(a CODE -1); }
|
||||
long T(NAME,linm1)(int a) { return -(a CODE -1); }
|
||||
long T(NAME,llnm1)(long a) { return -(a CODE -1); }
|
||||
|
||||
int T(NAME,iin42)(int a) { return -(a CODE 42); }
|
||||
int T(NAME,iln42)(long a) { return -(a CODE 42); }
|
||||
long T(NAME,lin42)(int a) { return -(a CODE 42); }
|
||||
long T(NAME,lln42)(long a) { return -(a CODE 42); }
|
9
gcc/testsuite/gcc.target/powerpc/setnbceq.c
Normal file
9
gcc/testsuite/gcc.target/powerpc/setnbceq.c
Normal file
@ -0,0 +1,9 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mcpu=future" } */
|
||||
|
||||
#define NAME eq
|
||||
#define CODE ==
|
||||
|
||||
#include "setnbc.h"
|
||||
|
||||
/* { dg-final { scan-assembler-times {\msetnbc\M} 20 } } */
|
12
gcc/testsuite/gcc.target/powerpc/setnbcge.c
Normal file
12
gcc/testsuite/gcc.target/powerpc/setnbcge.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mcpu=future" } */
|
||||
|
||||
#define NAME ge
|
||||
#define CODE >=
|
||||
|
||||
#include "setnbc.h"
|
||||
|
||||
/* "x >= 0" is done without setnbc.
|
||||
The generic code sometimes transforms "x >= A" to "x > A-1"; we allow
|
||||
either here. */
|
||||
/* { dg-final { scan-assembler-times {\msetnbcr?\M} 16 } } */
|
10
gcc/testsuite/gcc.target/powerpc/setnbcgt.c
Normal file
10
gcc/testsuite/gcc.target/powerpc/setnbcgt.c
Normal file
@ -0,0 +1,10 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mcpu=future" } */
|
||||
|
||||
#define NAME gt
|
||||
#define CODE >
|
||||
|
||||
#include "setnbc.h"
|
||||
|
||||
/* "x > -1" is done without setnbc. */
|
||||
/* { dg-final { scan-assembler-times {\msetnbc\M} 16 } } */
|
10
gcc/testsuite/gcc.target/powerpc/setnbcle.c
Normal file
10
gcc/testsuite/gcc.target/powerpc/setnbcle.c
Normal file
@ -0,0 +1,10 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mcpu=future" } */
|
||||
|
||||
#define NAME le
|
||||
#define CODE <=
|
||||
|
||||
#include "setnbc.h"
|
||||
|
||||
/* "x <= -1" is done without setnbc. */
|
||||
/* { dg-final { scan-assembler-times {\msetnbcr\M} 16 } } */
|
12
gcc/testsuite/gcc.target/powerpc/setnbclt.c
Normal file
12
gcc/testsuite/gcc.target/powerpc/setnbclt.c
Normal file
@ -0,0 +1,12 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mcpu=future" } */
|
||||
|
||||
#define NAME lt
|
||||
#define CODE <
|
||||
|
||||
#include "setnbc.h"
|
||||
|
||||
/* "x < 0" is done without setnbc.
|
||||
The generic code sometimes transforms "x < A" to "x <= A-1"; we allow
|
||||
either here. */
|
||||
/* { dg-final { scan-assembler-times {\msetnbcr?\M} 16 } } */
|
9
gcc/testsuite/gcc.target/powerpc/setnbcne.c
Normal file
9
gcc/testsuite/gcc.target/powerpc/setnbcne.c
Normal file
@ -0,0 +1,9 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -mcpu=future" } */
|
||||
|
||||
#define NAME ne
|
||||
#define CODE !=
|
||||
|
||||
#include "setnbc.h"
|
||||
|
||||
/* { dg-final { scan-assembler-times {\msetnbcr\M} 20 } } */
|
Loading…
Reference in New Issue
Block a user