[all-commits] [llvm/llvm-project] 862f42: [TargetLowering] Use Correct VT for Multi-out Asm ...

Sam Elliott via All-commits all-commits at lists.llvm.org
Thu Nov 14 04:31:54 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 862f42eedf21cc28f4bc692ab846c87b28b5960b
      https://github.com/llvm/llvm-project/commit/862f42eedf21cc28f4bc692ab846c87b28b5960b
  Author: Sam Elliott <quic_aelliott at quicinc.com>
  Date:   2024-11-14 (Thu, 14 Nov 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/test/CodeGen/AArch64/ls64-inline-asm.ll

  Log Message:
  -----------
  [TargetLowering] Use Correct VT for Multi-out Asm (#116024)

This was overlooked in 7d940432c46be83b8fcb5dbefee439585fa820cd - when
inline assembly has multiple outputs, they are returned as members of a
struct, and the `getAsmOperandType` needs to be called for each member
of struct. The difference between this and the single-output case is
that in the latter, there isn't a struct wrapping the outputs.

I noticed this when trying to use the same mechanism in the RISC-V
backend.

Committing two tests:
- One that shows a crash before this change, which is fixed by this
change.
- One (commented out) that shows a different crash with tied
inputs/outputs. This is commented as it is not fixed by this change and
needs more work in target-independent inline asm handling code.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list