https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117192

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|tree-optimization           |target

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
So in .optimize we have:

  _24 = c.0_1 == 0; // 1 because c is 0
  _27 = (unsigned int) _24;
  patt_36 = -_27; // -1
  _68 = {patt_36, patt_36}; // {-1, -1}
  mask_patt_42.26_69 = _68 != { 0, 0 }; // {-1,-1}
  _22 = VIEW_CONVERT_EXPR<vector(2) int>(mask_patt_42.26_69);
  vect_patt_43.30_74 = .BIT_ANDN (vect__ifc__49.29_73, _22); //
  _79 = BIT_FIELD_REF <vect_patt_43.30_74, 32, 32>; // 0



        cmpl    $1, %eax
        pxor    %xmm2, %xmm2 // 0
        movl    $6, b(%rip)
        sbbl    %eax, %eax // 0
        movd    %eax, %xmm0 // 0
        pshufd  $0xe0, %xmm0, %xmm0 // {0,0}
        pcmpeqd %xmm2, %xmm0 // xmm0 = {-1,-1}
        pcmpeqd %xmm2, %xmm0 // xmm0 = {0,0}
        pandn   %xmm0, %xmm1 // xmm1 = xmm0 & ~xmm1 -> 0 & ??? -> 0
        pshufd  $0xe5, %xmm1, %xmm3 //extract 0
        movd    %xmm3, %eax 
        movd    %xmm3, a(%rip)

But we are getting -1 ...

Reply via email to