tree-ssa-forwprop.c
97.1 KB
-
Fix ctz issues (PR93231) · bc071d3a
Further improve the ctz recognition: Avoid ICEing on negative shift counts or multiply constants. Check the type is a char type for the string constant case to avoid accidentally matching a wide STRING_CST. Add a tree_expr_nonzero_p check to allow the optimization even if CTZ_DEFINED_VALUE_AT_ZERO returns 0 or 1. Add extra test cases. Bootstrap OK on AArch64 and x64. gcc/ PR tree-optimization/93231 * tree-ssa-forwprop.c (optimize_count_trailing_zeroes): Check input_type is unsigned. Use tree_to_shwi for shift constant. Check CST_STRING element size is CHAR_TYPE_SIZE bits. (simplify_count_trailing_zeroes): Add test to handle known non-zero inputs more efficiently. testsuite/ PR tree-optimization/93231 * gcc.dg/pr90838.c: New test. * gcc.dg/pr93231.c: New test. * gcc.target/aarch64/pr90838.c: Use #define u 0.
Wilco Dijkstra committed