[Bug target/102143] ABI incompatibility with clang when passing 32bit vectors on 32bit i686

2021-09-01 Thread hjl.tools at gmail dot com via Gcc-bugs
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 };

[Bug target/102143] ABI incompatibility with clang when passing 32bit vectors on 32bit i686

2021-09-01 Thread ubizjak at gmail dot com via Gcc-bugs
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

[Bug target/102143] ABI incompatibility with clang when passing 32bit vectors on 32bit i686

2021-09-01 Thread jakub at gcc dot gnu.org via Gcc-bugs
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.

[Bug target/102143] ABI incompatibility with clang when passing 32bit vectors on 32bit i686

2021-09-01 Thread ubizjak at gmail dot com via Gcc-bugs
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:

[Bug target/102143] ABI incompatibility with clang when passing 32bit vectors on 32bit i686

2021-09-01 Thread ubizjak at gmail dot com via Gcc-bugs
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

[Bug target/102143] ABI incompatibility with clang when passing 32bit vectors on 32bit i686

2021-08-31 Thread hjl.tools at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102143 H.J. Lu changed: What|Removed |Added Ever confirmed|0 |1 Last reconfirmed|