annotate gcc/testsuite/gcc.dg/pr89435.c @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1 /* PR rtl-optimization/89435 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2 /* { dg-do run } */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
3 /* { dg-options "-O1 -fno-forward-propagate -fno-tree-forwprop -fno-tree-ccp" } */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
4
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
5 unsigned short a;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
6 unsigned int b, c, d, e, f;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
7
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
8 int
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
9 main ()
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
10 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
11 #if __CHAR_BIT__ == 8 && __SIZEOF_INT__ == 4
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
12 unsigned char g = e = __builtin_mul_overflow_p (5, 542624702, 0);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
13 d = __builtin_bswap64 (a);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
14 b = __builtin_sub_overflow ((unsigned char) -e, (unsigned int) d, &g);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
15 e = __builtin_mul_overflow (b, c, &a);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
16 f = g + e;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
17 if (f != 0xff)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
18 __builtin_abort ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
19 #endif
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
20 return 0;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
21 }