[Bug target/79544] New: vec_sra (unsigned long long,foo) generating vsrd instead of vsrad
willschm at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Feb 15 20:59:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79544
Bug ID: 79544
Summary: vec_sra (unsigned long long,foo) generating vsrd
instead of vsrad
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: willschm at gcc dot gnu.org
Target Milestone: ---
Created attachment 40756
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40756&action=edit
sample test
Noticed that vec_sra is generating a vsrd instruction rather than the expected
vsrad instruction when using "unsigned long long" parameter.
> #include <altivec.h>
> vector unsigned long long
> test6_sra (vector unsigned long long x, vector unsigned long long y)
> {
> return vec_sra (x, y);
> }
> #> gcc -c testme_sra.c -S -mvsx -O3
> #> grep -A 3 test6_sra: testme_sra.s
> test6_sra:
> vsrd 2,2,3
> blr
> .long 0
vec_sra() against char,short,int appear OK.
Seeing this on trunk (20170208) as well as older distro supplied compilers.
test attached.
More information about the Gcc-bugs
mailing list