2 /* { dg-options "-O2 -fdump-rtl-expand" } */
4 typedef struct { char s
[8]; int x
; } S
;
5 __attribute__ ((noinline
)) int
9 result
+= __builtin_strncmp (s
->s
, "ab", 2);
10 result
+= __builtin_strncmp (s
->s
, "abc", 3);
14 __attribute__ ((noinline
)) int
18 result
+= __builtin_strncmp (p
, "ab", 2);
19 result
+= __builtin_strncmp (p
, "abc", 3);
23 __attribute__ ((noinline
)) int
27 result
+= __builtin_strcmp (s
->s
, "a");
28 result
+= __builtin_strcmp (s
->s
, "ab");
32 __attribute__ ((noinline
)) int
36 result
+= __builtin_strcmp (p
, "a");
37 result
+= __builtin_strcmp (p
, "ab");
41 __attribute__ ((noinline
)) int
45 result
+= __builtin_memcmp (s
->s
, "ab", 2);
46 result
+= __builtin_memcmp (s
->s
, "abc", 3);
50 __attribute__ ((noinline
)) int
54 result
+= __builtin_memcmp (p
, "ab", 2);
55 result
+= __builtin_memcmp (p
, "abc", 3);
61 S ss
= {{'a','b','c'}, 2};
64 if (f1 (&ss
) != 0 || f2 (s
) != 0)
67 if (f3 (&ss
) <= 0 || f4 (s
) <= 0)
70 if (f5 (&ss
) != 0 || f6 (s
) != 0)
78 /* { dg-final { scan-rtl-dump-times "__builtin_strcmp" 0 "expand" } } */
79 /* { dg-final { scan-rtl-dump-times "__builtin_strncmp" 0 "expand" } } */
80 /* { dg-final { scan-rtl-dump-times "__builtin_memcmp" 0 "expand" } } */