Add documentation for musttail attribute
[official-gcc.git] / gcc / testsuite / gcc.target / arm / pure-code / pr96769.c
blobc90981fb01019f6b8befeccec955ddf5b24ea222
1 /* { dg-do compile } */
2 /* { dg-options "-mpure-code" } */
4 int f3 (void) { return 0x11000000; }
5 int f3_2 (void) { return 0x12345678; }
6 int f3_3 (void) { return -1; }
7 int f3_4 (void) { return 511; }
9 /* For cortex-m0 (thumb-1/v6m), we generate 1 lsls in f3 3 lsls in f3_2 and 1 in f3_4; 1 rsbs in f3_3. */
10 /* { dg-final { scan-assembler-times "lsls" 5 { target { { ! arm_thumb1_movt_ok } && { ! arm_thumb2_ok } } } } } */
11 /* { dg-final { scan-assembler-times "rsbs" 1 { target { { ! arm_thumb1_movt_ok } && { ! arm_thumb2_ok } } } } } */
13 /* For cortex-m23 (thumb-1/v8m.base), we generate 1 lsls in f3, and none in f3_2 nor f3_4; 1 rsbs in f3_3. */
14 /* { dg-final { scan-assembler-times "lsls" 1 { target { arm_thumb1_movt_ok && { ! arm_thumb2_ok } } } } } */
15 /* { dg-final { scan-assembler-times "rsbs" 1 { target { arm_thumb1_movt_ok && { ! arm_thumb2_ok } } } } } */
17 /* For cortex-m3 (thumb-2/v7m), we generate no lsls and no rsbs. */
18 /* { dg-final { scan-assembler-times "lsls" 0 { target { arm_thumb2_ok } } } } */
19 /* { dg-final { scan-assembler-times "rsbs" 0 { target { arm_thumb2_ok } } } } */