https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70405
--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> --- There is difference in _.optimized dump: --- pr70405.c.211t.optimized 2016-03-25 13:54:01.942116037 +0100 +++ pr70405.c.gk.211t.optimized 2016-03-25 13:54:01.968115746 +0100 @@ -107,8 +107,10 @@ _70 = (unsigned int) _68; _71 = _68 >> _70; v.1_2 = {_11, _15, _19, _23, _27, _31, _35, _39, _43, _47, _51, _55, _59, _63, _67, _71}; - _3 = VEC_PERM_EXPR <v.1_2, v.1_2, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }>; + # DEBUG v => v.1_2 + _3 = {_11, _11, _11, _11, _11, _11, _11, _11, _11, _11, _11, _11, _11, _11, _11, _11}; v.2_4 = v.1_2 - _3; + # DEBUG v => v.2_4 _5 = BIT_FIELD_REF <v.2_4, 16, 48>; _6 = (int) _5; return _6;