blob: 87c970956a52038a8124737583c5c54f4657e63d [file]
; RUN: llc -mtriple=riscv64-unknown-linux-gnu < %s | FileCheck %s --check-prefixes=CHECK,EXTRA-FEATURES
; RUN: llc -mtriple=riscv64-unknown-linux-gnu -mattr=+d < %s | FileCheck %s --check-prefixes=CHECK,SAME-FEATURES
; RUN: llc -mtriple=riscv64-unknown-linux-gnu -filetype=obj < %s | llvm-objdump -d --show-all-symbols --no-show-raw-insn - | FileCheck %s --check-prefix=OBJ
; This should work fine, because the module asm specifies the necessary
; target features
; SAME-FEATURES-NOT: .option arch
; EXTRA-FEATURES: .option push
; EXTRA-FEATURES-NEXT: .option arch, +d, +f, +zicsr{{$}}
; CHECK: .globl func
; CHECK-NEXT: func:
; CHECK-NEXT: fld ft0, 0(sp)
; CHECK-NEXT: ret
; EXTRA-FEATURES-NEXT: .option pop
; OBJ-LABEL: Disassembly of section .text:
; OBJ-EMPTY:
; OBJ-NEXT: 0000000000000000 <$xrv64i2p1_f2p2_d2p2_zicsr2p0>:
; OBJ-NEXT: 0000000000000000 <func>:
; OBJ-NEXT: 0: fld ft0, 0x0(sp)
; OBJ-NEXT: 4: ret
; OBJ-NOT: {{.}}
module asm(target_features: "+d")
".globl func"
"func:"
"fld f0, 0(sp)"
"ret"