annotate gcc/testsuite/c-c++-common/pr81376.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 /* { dg-do compile } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 /* { dg-options "-O2 -fdump-tree-original" } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 typedef double c_t;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 typedef int a_t;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 int f(a_t a1, a_t a2) {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 return (c_t) a1 < (c_t) a2;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 /* { dg-final { scan-tree-dump "return (<retval> = )?a1 < a2" "original" } } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 void f1(short a, short b)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 volatile int s_s;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 s_s = (float) a < (float) b;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 /* { dg-final { scan-tree-dump "s_s = a < b" "original" } } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 void f2(unsigned short a, unsigned short b)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 volatile int us_us;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 us_us = (float) a < (float) b;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 /* { dg-final { scan-tree-dump "us_us = a < b" "original" } } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 /* We don't optimize here because neither of integral types is
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 subset of the other. */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 void f3(unsigned short a, short b)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 volatile int us_s;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 us_s = (float) a < (float) b;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31 /* { dg-final { scan-tree-dump "us_s = \\(float\\) a < \\(float\\) b" "original" } } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 void f4(unsigned short a, int b)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 volatile int us_i;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37 us_i = (double) a < (double) b;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 /* { dg-final { scan-tree-dump "us_i = \\(int\\) a < b" "original" } } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39 }
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41 /* We don't optimize here because neither of integral types is
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42 subset of the other. */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43 void f5(short a, unsigned int b)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
44 {
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
45 volatile int s_ui;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
46 s_ui = (double) a < (double) b;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
47 /* { dg-final { scan-tree-dump "s_ui = \\(double\\) a < \\(double\\) b" "original" } } */
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
48 }