Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing calling convention support for vector types #45418

Open
jsonn opened this issue May 26, 2020 · 5 comments
Open

Missing calling convention support for vector types #45418

jsonn opened this issue May 26, 2020 · 5 comments
Labels
backend:Sparc bugzilla Issues migrated from bugzilla

Comments

@jsonn
Copy link
Contributor

jsonn commented May 26, 2020

Bugzilla Link 46073
Version trunk
OS Linux
Attachments Minimal test case
CC @glaubitz,@jrtc27,@rorth

Extended Description

Try compiling the attached code, it will assert in SparcTargetLowering::LowerCall_32 respectively LowerCall_64 due to the missing lowering for 16x16 vector types.

@llvmbot
Copy link
Member

llvmbot commented Nov 11, 2020

This (unfortunately) happens in real world code and breaks firefox compilation for me.

@glaubitz
Copy link
Contributor

Maybe we could look at how GCC does the lowering here.

@llvmbot
Copy link
Member

llvmbot commented Nov 11, 2020

AFAICT the ABI does not know about VIS data types at all, they are just passed like any other bunch of float (or double) values.

@glaubitz
Copy link
Contributor

I would have been surprised to know that SPARC has any sorts of vector types.

@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 10, 2021
@taiki-e
Copy link

taiki-e commented Nov 13, 2024

According to calling conventions implemented by GCC:

  • On SPARC32: 64-bit or smaller vector integer is passed using int reg (argument) / FP reg (return value)
  • On SPARC64: 128-bit(argument)/256-bit(return value) or smaller vector integer/float are passed using FP reg

(sparc_pass_by_reference and sparc_return_in_memory have more comments about this.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:Sparc bugzilla Issues migrated from bugzilla
Projects
None yet
Development

No branches or pull requests

4 participants