Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.target/aarch64/neg_1.c @ 152:2b5abeee2509
update gcc11
author | anatofuz |
---|---|
date | Mon, 25 May 2020 07:50:57 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* { dg-do run } */ /* { dg-options "-O2 -fno-inline --save-temps" } */ extern void abort (void); long long neg64 (long long a) { /* { dg-final { scan-assembler "neg\tx\[0-9\]+" } } */ return 0 - a; } long long neg64_in_dreg (long long a) { /* { dg-final { scan-assembler "neg\td\[0-9\]+, d\[0-9\]+" } } */ register long long x asm ("d8") = a; register long long y asm ("d9"); asm volatile ("" : : "w" (x)); y = 0 - x; asm volatile ("" : : "w" (y)); return y; } int neg32 (int a) { /* { dg-final { scan-assembler "neg\tw\[0-9\]+" } } */ return 0 - a; } int neg32_in_sreg (int a) { /* { dg-final { scan-assembler "neg\tv\[0-9\]+\.2s, v\[0-9\]+\.2s" } } */ register int x asm ("s8") = a; register int y asm ("s9"); asm volatile ("" : : "w" (x)); y = 0 - x; asm volatile ("" : : "w" (y)); return y; } int main (void) { long long a; int b; a = 61; b = 313; if (neg64 (a) != -61) abort (); if (neg64_in_dreg (a) != -61) abort (); if (neg32 (b) != -313) abort (); if (neg32_in_sreg (b) != -313) abort (); return 0; }