https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119114
--- Comment #7 from Li Pan <pan2.li at intel dot com> --- Yes, double checked, the result of tree.optimized looks right, details as below. Then should be a backend issue now. will take a look into it. 206 │ <bb 5> [local count: 56478818]: 207 │ _114 = MEM[(short int *)&t]; 208 │ _106 = MEM[(short int *)&t + 8B]; 209 │ _145 = _106 & _114; 210 │ _124 = _145 != 0; // 1 211 │ _144 = a_lsm.12_51 ^ _124; // 1 212 │ 213 │ _125 = (<signed-boolean:1>) _144; // 1 214 │ _250 = {_125, _125, _125, _125, _125, _125, _125, _125}; // 1 215 │ _251 = {_106, _106, _106, _106, _106, _106, _106, _106}; // 3 216 │ D__lsm0.64_261 = MEM[(short int *)&t + 16B]; // 3 217 │ D__lsm0.65_262 = MEM[(short int *)&t + 12B]; // 3 218 │ D__lsm0.66_263 = MEM[(short int *)&t + 4B]; // 3 219 │ vect_cst__266 = {D__lsm0.66_263, D__lsm0.66_263, D__lsm0.66_263, D__lsm0.66_263, D__lsm0.66_263, D__lsm0.66_263, D__lsm0.66_263, D__lsm0.66_263}; 220 │ // {3} 221 │ vect_cst__267 = {D__lsm0.65_262, D__lsm0.65_262, D__lsm0.65_262, D__lsm0.65_262, D__lsm0.65_262, D__lsm0.65_262, D__lsm0.65_262, D__lsm0.65_262}; 222 │ // {3} 223 │ vect__58.17_268 = vect_cst__266 & vect_cst__267; 224 │ // {3} 225 │ mask__57.18_269 = vect__58.17_268 != { 0, 0, 0, 0, 0, 0, 0, 0 }; 226 │ // 0xff 227 │ vect_cst__273 = {D__lsm0.64_261, D__lsm0.64_261, D__lsm0.64_261, D__lsm0.64_261, D__lsm0.64_261, D__lsm0.64_261, D__lsm0.64_261, D__lsm0.64_261}; 228 │ // {3} 229 │ vect__81.20_274 = _251 & vect_cst__273; 230 │ mask__82.21_275 = vect__81.20_274 != { 0, 0, 0, 0, 0, 0, 0, 0 }; // {3} 231 │ _32 = mask__57.18_269 ^ mask__82.21_275; // 0xff 232 │ mask__83.22_277 = _32 ^ _250; // 0xff 233 │ _278 = .VEC_EXTRACT (mask__83.22_277, 0); // 1 234 │ 235 │ _23 = MEM[(short int *)&t + 20B]; // 3 236 │ _24 = _23 & D__lsm0.65_262; // 3 237 │ _25 = _24 != 0; // 1 238 │ _127 = (<signed-boolean:1>) _25; // 1 239 │ _157 = _127 ^ _278; // 1 240 │ _158 = {_157, _157, _157, _157, _157, _157, _157, _157}; // {1} 241 │ _164 = {_23, _23, _23, _23, _23, _23, _23, _23}; // {3} 242 │ D__lsm0.64_37 = MEM[(short int *)&t + 28B]; // 3 243 │ D__lsm0.65_47 = MEM[(short int *)&t + 24B]; // 3 244 │ vect_cst__57 = {D__lsm0.65_47, D__lsm0.65_47, D__lsm0.65_47, D__lsm0.65_47, D__lsm0.65_47, D__lsm0.65_47, D__lsm0.65_47, D__lsm0.65_47}; 245 │ // {3} 246 │ vect__58.17_56 = vect_cst__57 & vect_cst__273; // {3} 247 │ mask__57.18_81 = vect__58.17_56 != { 0, 0, 0, 0, 0, 0, 0, 0 }; // 0xff 248 │ vect_cst__142 = {D__lsm0.64_37, D__lsm0.64_37, D__lsm0.64_37, D__lsm0.64_37, D__lsm0.64_37, D__lsm0.64_37, D__lsm0.64_37, D__lsm0.64_37}; 249 │ // {3} 250 │ vect__81.20_52 = vect_cst__142 & _164; // {3} 251 │ mask__82.21_53 = vect__81.20_52 != { 0, 0, 0, 0, 0, 0, 0, 0 }; // 0xff 252 │ _31 = mask__82.21_53 ^ mask__57.18_81; // 0xff 253 │ mask__83.22_168 = _31 ^ _158; // 0 254 │ _172 = .VEC_EXTRACT (mask__83.22_168, 0); // 0 255 │ _173 = (_Bool) _172; 256 │ a = _173; 257 │ _4 = (long long int) _173; 258 │ __builtin_printf ("Final %llu, but expect 0.\n", _4); 259 │ return 0;