https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119114
--- Comment #8 from Li Pan <pan2.li at intel dot com> ---
 252   │   vect__81.20_52 = vect_cst__142 & _164; // {3}
 253   │   mask__82.21_53 = vect__81.20_52 != { 0, 0, 0, 0, 0, 0, 0, 0 };//
0xff
 254   │   _31 = mask__82.21_53 ^ mask__57.18_81; // 0xff
 255   │   mask__83.22_168 = _31 ^ _158; // 0
 256   │   _172 = .VEC_EXTRACT (mask__83.22_168, 0); // 0
 257   │   _173 = (_Bool) _172;
 258   │   a = _173;
 259   │   _4 = (long long int) _173;
 260   │   __builtin_printf ("Final %llu, but expect 0.\n", _4);
 261   │   return 0;

--------------------looks like VEC_EXTRACT? line 153 and 155 may not necessary.

 144   │    102fc:   5e07c0d7 vmv.v.x v1,a5 // v1.s = {3}, a5 = 3
 145   │    10300:   261100d7 vand.vv v1,v1,v2 // v1.s = {3}, v2 = {3}
 146   │    10304:   661030d7 vmsne.vi    v1,v1,0 // v1.s = {0xffff}
 147   │    10308:   6e00a057 vmxor.mm    v0,v0,v1 // v0.s = {0xff00} 1st XOR
 148   │    1030c:   0c707057 vsetvli zero,zero,e8,mf2,ta,ma   // vl = 8
 149   │    10310:   5e0740d7 vmv.v.x v1,a4 // v1.b = {0xfe}, a4 = -2
 151   │    10314:   661030d7 vmsne.vi    v1,v1,0 // v1.b = {0xff}
 152   │    10318:   6e00a057 vmxor.mm    v0,v0,v1 // v0.b = {0xff} 2nd XOR

 153   │    1031c:   5e0030d7 vmv.v.i v1,0 // v1.b = {0}
 155   │    10320:   5c10b0d7 vmerge.vim  v1,v1,1,v0 // v1.b = {0x1}

 156   │    10324:   421025d7 vmv.x.s a1,v1 // a1 = 0x1
 157   │    10328:   8985     andi    a1,a1,1
 158   │    1032a:   88b18823 sb  a1,-1904(gp) # 1abf0 <a>
 159   │    1032e:   6565     lui a0,0x19
 160   │    10330:   66050513 addi    a0,a0,1632 # 19660 <__clzdi2+0x2e>
 161   │    10334:   482000ef jal 107b6 <printf>

Reply via email to