https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102143
--- Comment #6 from H.J. Lu ---
I think psABIs should specify how to pass and return 8-bit, 16-bit and 32-bit
vectors. We can treat them as
struct vectorN
{
intN
};
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102143
--- Comment #5 from Uroš Bizjak ---
(In reply to Uroš Bizjak from comment #3)
> gcc has also some problems in this area. With -mregparm=3, one would expect
> arguments obeying integer ABI to be passed in registers, but regparm flag
> has no
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102143
--- Comment #4 from Jakub Jelinek ---
Well, we already have the ABI ISA dependent,
typedef int __v8si __attribute__((__vector_size__ (32)));
__v8si
foo (__v8si x, __v8si y)
{
return x + y;
}
has different ABI based on -mavx or -mno-avx, etc.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102143
--- Comment #3 from Uroš Bizjak ---
gcc has also some problems in this area. With -mregparm=3, one would expect
arguments obeying integer ABI to be passed in registers, but regparm flag has
no effect and the same code is produced:
foo:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102143
--- Comment #2 from Uroš Bizjak ---
(In reply to H.J. Lu from comment #1)
> 16-bit and 32-bit vector pass and return are not specified in i386 psABI.
> 64-bit vector is specified, not really usable. Any suggestions?
With -mno-sse, clang
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102143
H.J. Lu changed:
What|Removed |Added
Ever confirmed|0 |1
Last reconfirmed|