Extend fix for PR34170 to support inline assembly with multiple output operands that do not naturally go in the register class it is constrained to (eg. double in a 32-bit GPR as in the PR).
Details
Details
- Reviewers
bogner t.p.northover lattner javed.absar efriedma - Commits
- rGde814ae68121: Merging r339225: --------------------------------------------------------------…
rG4107b31df25a: Support inline asm with multiple 64bit output in 32bit GPR
rL339539: Merging r339225:
rL339225: Support inline asm with multiple 64bit output in 32bit GPR
Diff Detail
Diff Detail
- Repository
- rL LLVM
- Build Status
Buildable 21182 Build 21182: arc lint + arc unit
Event Timeline
Comment Actions
This fix the bug reported in https://reviews.llvm.org/rL337903
Do we have test coverage for that issue reported in that email? If not, please add a testcase.
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | ||
---|---|---|
7843 | isSized()? How can you end up with an unsized value here? | |
7863 | This part of the patch is just whitespace changes? | |
test/CodeGen/ARM/inlineasm-operand-implicit-cast.ll | ||
175 | Please add a test for multiple return values with matching inputs. |
Comment Actions
- Change test for isSized() into assert
- Add test for multiple return values with matching input
- Rewrite hardfloat tests to return a struct to make register used predictable and not dependent on register allocator
isSized()? How can you end up with an unsized value here?