xref: /llvm-project/llvm/test/CodeGen/LoongArch/inline-asm-operand-modifiers.ll (revision 9d4f7f44b64d87d1068859906f43b7ce03a7388b)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc --mtriple=loongarch32 -mattr=+d --verify-machineinstrs < %s | FileCheck %s
3; RUN: llc --mtriple=loongarch64 -mattr=+d --verify-machineinstrs < %s | FileCheck %s
4
5define i32 @modifier_z_zero(i32 %a) nounwind {
6; CHECK-LABEL: modifier_z_zero:
7; CHECK:       # %bb.0:
8; CHECK-NEXT:    #APP
9; CHECK-NEXT:    add.w $a0, $a0, $zero
10; CHECK-NEXT:    #NO_APP
11; CHECK-NEXT:    ret
12  %1 = tail call i32 asm "add.w $0, $1, ${2:z}", "=r,r,ri"(i32 %a, i32 0)
13  ret i32 %1
14}
15
16define i32 @modifier_z_nonzero(i32 %a) nounwind {
17; CHECK-LABEL: modifier_z_nonzero:
18; CHECK:       # %bb.0:
19; CHECK-NEXT:    #APP
20; CHECK-NEXT:    addi.w $a0, $a0, 1
21; CHECK-NEXT:    #NO_APP
22; CHECK-NEXT:    ret
23  %1 = tail call i32 asm "addi.w $0, $1, ${2:z}", "=r,r,ri"(i32 %a, i32 1)
24  ret i32 %1
25}
26