1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
/* Test the valid @cc<cc> asm flag outputs. */
/* { dg-do compile } */
/* { dg-options "-O" } */
/* { dg-skip-if "" { arm_thumb1 } } */
#ifndef __GCC_ASM_FLAG_OUTPUTS__
#error "missing preprocessor define"
#endif
void f(char *out)
{
asm(""
: "=@ccne"(out[0]), "=@cceq"(out[1]),
"=@cccs"(out[2]), "=@cccc"(out[3]),
"=@ccmi"(out[4]), "=@ccpl"(out[5]),
"=@ccvs"(out[6]), "=@ccvc"(out[7]),
"=@cchi"(out[8]), "=@ccls"(out[9]),
"=@ccge"(out[10]), "=@cclt"(out[11]),
"=@ccgt"(out[12]), "=@ccle"(out[13]),
"=@cchs"(out[14]), "=@cclo"(out[15]));
}
/* There will be at least one of each. */
/* { dg-final { scan-assembler "movne" } } */
/* { dg-final { scan-assembler "moveq" } } */
/* { dg-final { scan-assembler "movcs" } } */
/* { dg-final { scan-assembler "movcc" } } */
/* { dg-final { scan-assembler "movmi" } } */
/* { dg-final { scan-assembler "movpl" } } */
/* { dg-final { scan-assembler "movvs" } } */
/* { dg-final { scan-assembler "movvc" } } */
/* { dg-final { scan-assembler "movhi" } } */
/* { dg-final { scan-assembler "movls" } } */
/* { dg-final { scan-assembler "movge" } } */
/* { dg-final { scan-assembler "movls" } } */
/* { dg-final { scan-assembler "movgt" } } */
/* { dg-final { scan-assembler "movle" } } */
|