Commit 8fdac08
committed
tree-optimization/114197 - unexpected if-conversion for vectorization
The following avoids lowering a volatile bitfiled access and in case
the if-converted and original loops end up in different outer loops
because of simplifcations enabled scrap the result since that is not
how the vectorizer expects the loops to be laid out.
PR tree-optimization/114197
* tree-if-conv.cc (bitfields_to_lower_p): Do not lower if
there are volatile bitfield accesses.
(pass_if_conversion::execute): Throw away result if the
if-converted and original loops are not nested as expected.
* gcc.dg/torture/pr114197.c: New testcase.1 parent a19ab1c commit 8fdac08
2 files changed
Lines changed: 34 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3701 | 3701 | | |
3702 | 3702 | | |
3703 | 3703 | | |
| 3704 | + | |
| 3705 | + | |
| 3706 | + | |
| 3707 | + | |
| 3708 | + | |
| 3709 | + | |
| 3710 | + | |
| 3711 | + | |
3704 | 3712 | | |
3705 | 3713 | | |
3706 | 3714 | | |
| |||
4031 | 4039 | | |
4032 | 4040 | | |
4033 | 4041 | | |
4034 | | - | |
| 4042 | + | |
| 4043 | + | |
4035 | 4044 | | |
4036 | 4045 | | |
4037 | 4046 | | |
4038 | 4047 | | |
4039 | 4048 | | |
4040 | | - | |
4041 | | - | |
4042 | | - | |
| 4049 | + | |
| 4050 | + | |
| 4051 | + | |
4043 | 4052 | | |
4044 | 4053 | | |
4045 | 4054 | | |
4046 | 4055 | | |
4047 | 4056 | | |
| 4057 | + | |
| 4058 | + | |
| 4059 | + | |
| 4060 | + | |
| 4061 | + | |
| 4062 | + | |
4048 | 4063 | | |
4049 | 4064 | | |
4050 | 4065 | | |
| |||
0 commit comments