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;