xref: /llvm-project/llvm/test/CodeGen/RISCV/inline-asm-clobbers.ll (revision 4e115b7d881136947c083e12f62010bc6b1d3f00)
1*4e115b7dSZakk Chen; RUN: llc -mtriple=riscv32 -target-abi=ilp32 -verify-machineinstrs < %s \
28d7ec4d6SSimon Cook; RUN:   | FileCheck -check-prefix=RV32I %s
3*4e115b7dSZakk Chen; RUN: llc -mtriple=riscv64 -target-abi=lp64 -verify-machineinstrs < %s \
48d7ec4d6SSimon Cook; RUN:   | FileCheck -check-prefix=RV64I %s
5*4e115b7dSZakk Chen; RUN: llc -mtriple=riscv32 -mattr=+f -target-abi=ilp32 -verify-machineinstrs < %s \
68d7ec4d6SSimon Cook; RUN:   | FileCheck -check-prefix=RV32I %s
7*4e115b7dSZakk Chen; RUN: llc -mtriple=riscv64 -mattr=+f -target-abi=lp64 -verify-machineinstrs < %s \
88d7ec4d6SSimon Cook; RUN:   | FileCheck -check-prefix=RV64I %s
9*4e115b7dSZakk Chen; RUN: llc -mtriple=riscv32 -mattr=+d -target-abi=ilp32 -verify-machineinstrs < %s \
108d7ec4d6SSimon Cook; RUN:   | FileCheck -check-prefix=RV32I %s
11*4e115b7dSZakk Chen; RUN: llc -mtriple=riscv64 -mattr=+d -target-abi=lp64 -verify-machineinstrs < %s \
128d7ec4d6SSimon Cook; RUN:   | FileCheck -check-prefix=RV64I %s
138d7ec4d6SSimon Cook; RUN: llc -mtriple=riscv32 -mattr=+f -target-abi ilp32f -verify-machineinstrs < %s \
148d7ec4d6SSimon Cook; RUN:   | FileCheck -check-prefix=RV32IF %s
158d7ec4d6SSimon Cook; RUN: llc -mtriple=riscv64 -mattr=+f -target-abi lp64f -verify-machineinstrs < %s \
168d7ec4d6SSimon Cook; RUN:   | FileCheck -check-prefix=RV64IF %s
178d7ec4d6SSimon Cook; RUN: llc -mtriple=riscv32 -mattr=+d -target-abi ilp32d -verify-machineinstrs < %s \
188d7ec4d6SSimon Cook; RUN:   | FileCheck -check-prefix=RV32ID %s
198d7ec4d6SSimon Cook; RUN: llc -mtriple=riscv64 -mattr=+d -target-abi lp64d -verify-machineinstrs < %s \
208d7ec4d6SSimon Cook; RUN:   | FileCheck -check-prefix=RV64ID %s
218d7ec4d6SSimon Cook
228d7ec4d6SSimon Cook
238d7ec4d6SSimon Cookdefine void @testcase() nounwind {
248d7ec4d6SSimon Cook; RV32I-LABEL: testcase:
258d7ec4d6SSimon Cook; RV32I:      sw s1, {{[0-9]+}}(sp)
268d7ec4d6SSimon Cook; RV32I-NEXT: sw s2, {{[0-9]+}}(sp)
278d7ec4d6SSimon Cook; RV32I-NOT:  fsw fs0, {{[0-9]+}}(sp)
288d7ec4d6SSimon Cook; RV32I-NOT:  fsd fs0, {{[0-9]+}}(sp)
298d7ec4d6SSimon Cook;
308d7ec4d6SSimon Cook; RV64I-LABEL: testcase:
318d7ec4d6SSimon Cook; RV64I:      sd s1, {{[0-9]+}}(sp)
328d7ec4d6SSimon Cook; RV64I-NEXT: sd s2, {{[0-9]+}}(sp)
338d7ec4d6SSimon Cook; RV64I-NOT:  fsw fs0, {{[0-9]+}}(sp)
348d7ec4d6SSimon Cook; RV64I-NOT:  fsd fs0, {{[0-9]+}}(sp)
358d7ec4d6SSimon Cook;
368d7ec4d6SSimon Cook; RV32IF-LABEL: testcase:
378d7ec4d6SSimon Cook; RV32IF:      sw s1, {{[0-9]+}}(sp)
388d7ec4d6SSimon Cook; RV32IF-NEXT: sw s2, {{[0-9]+}}(sp)
398d7ec4d6SSimon Cook; RV32IF-NEXT: fsw fs0, {{[0-9]+}}(sp)
408d7ec4d6SSimon Cook; RV32IF-NEXT: fsw fs1, {{[0-9]+}}(sp)
418d7ec4d6SSimon Cook;
428d7ec4d6SSimon Cook; RV64IF-LABEL: testcase:
438d7ec4d6SSimon Cook; RV64IF:      sd s1, {{[0-9]+}}(sp)
448d7ec4d6SSimon Cook; RV64IF-NEXT: sd s2, {{[0-9]+}}(sp)
458d7ec4d6SSimon Cook; RV64IF-NEXT: fsw fs0, {{[0-9]+}}(sp)
468d7ec4d6SSimon Cook; RV64IF-NEXT: fsw fs1, {{[0-9]+}}(sp)
478d7ec4d6SSimon Cook;
488d7ec4d6SSimon Cook; RV32ID-LABEL: testcase:
498d7ec4d6SSimon Cook; RV32ID:      sw s1, {{[0-9]+}}(sp)
508d7ec4d6SSimon Cook; RV32ID-NEXT: sw s2, {{[0-9]+}}(sp)
518d7ec4d6SSimon Cook; RV32ID-NEXT: fsd fs0, {{[0-9]+}}(sp)
528d7ec4d6SSimon Cook; RV32ID-NEXT: fsd fs1, {{[0-9]+}}(sp)
538d7ec4d6SSimon Cook;
548d7ec4d6SSimon Cook; RV64ID-LABEL: testcase:
558d7ec4d6SSimon Cook; RV64ID:      sd s1, {{[0-9]+}}(sp)
568d7ec4d6SSimon Cook; RV64ID-NEXT: sd s2, {{[0-9]+}}(sp)
578d7ec4d6SSimon Cook; RV64ID-NEXT: fsd fs0, {{[0-9]+}}(sp)
588d7ec4d6SSimon Cook; RV64ID-NEXT: fsd fs1, {{[0-9]+}}(sp)
598d7ec4d6SSimon Cook  tail call void asm sideeffect "", "~{f8},~{f9},~{x9},~{x18}"()
608d7ec4d6SSimon Cook  ret void
618d7ec4d6SSimon Cook}
62