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

            Bug ID: 122781
           Summary: z17: Inefficient code for vec_cmpgt for vector
                    unsigned __int128
           Product: gcc
           Version: 15.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jens.seifert at de dot ibm.com
  Target Milestone: ---

vector unsigned __int128 cmpgt(vector unsigned __int128 a, vector unsigned
__int128 b)
{
    return vec_cmpgt(a, b);
}

Creates:
cmpgt(unsigned __int128 __vector(1), unsigned __int128 __vector(1)):
        vchlg   %v0,%v24,%v26
        vpdi    %v2,%v0,%v0,4
        vceqg   %v24,%v24,%v26
        veval   %v4,%v0,%v24,%v2,31
        vrepg   %v24,%v4,0
        br      %r14

but should create a sequence using vchlg
cmpgt(unsigned __int128 __vector(1), unsigned __int128 __vector(1)):
        vchlq   %v24,%v24,%v26
        br      %r14

Reply via email to