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