| ; RUN: llc -mtriple=riscv32 -mattr=+relax,+c %s --filetype=obj -o - \ |
| ; RUN: | llvm-objdump --triple=riscv32 --mattr=+c -M no-aliases -dr - \ |
| ; RUN: | FileCheck %s |
| |
| define i32 @foo(ptr noundef %f) nounwind { |
| ; CHECK-LABEL: <foo>: |
| ; CHECK: auipc ra, 0x0 |
| ; CHECK-NEXT: R_RISCV_CALL_PLT undefined |
| ; CHECK-NEXT: jalr ra, 0x0(ra) |
| ; CHECK-NEXT: lw a0, 0x0(a0) |
| ; CHECK-NEXT: c.jr ra |
| |
| entry: |
| %0 = tail call i32 asm sideeffect " |
| .option exact |
| call undefined@plt |
| lw $0, ($1) |
| .option noexact", "=^cr,^cr"(ptr %f) |
| ret i32 %0 |
| } |