50 lines · plain
1; RUN: llc --mtriple=xtensa < %s | FileCheck %s2 3declare i32 @external_function(i32)4 5define i32 @test_call_external(i32 %a) nounwind {6; CHECK-LABEL: test_call_external:7; CHECK: # %bb.0:8; CHECK: s32i a0, a1, 09; CHECK-NEXT: l32r a8, .LCPI0_010; CHECK-NEXT: callx0 a811; CHECK-NEXT: l32i a0, a1, 012; CHECK: ret13 %1 = call i32 @external_function(i32 %a)14 ret i32 %115}16 17define i32 @defined_function(i32 %a) nounwind {18; CHECK-LABEL: defined_function:19; CHECK: # %bb.0:20; CHECK-NEXT: addi a2, a2, 121; CHECK-NEXT: ret22 %1 = add i32 %a, 123 ret i32 %124}25 26define i32 @test_call_defined(i32 %a) nounwind {27; CHECK-LABEL: test_call_defined:28; CHECK: # %bb.0:29; CHECK: s32i a0, a1, 030; CHECK-NEXT: l32r a8, .LCPI2_031; CHECK-NEXT: callx0 a832; CHECK-NEXT: l32i a0, a1, 033; CHECK: ret34 %1 = call i32 @defined_function(i32 %a) nounwind35 ret i32 %136}37 38define i32 @test_call_indirect(ptr %a, i32 %b) nounwind {39; CHECK-LABEL: test_call_indirect:40; CHECK: # %bb.0:41; CHECK: s32i a0, a1, 042; CHECK-NEXT: or a8, a2, a243; CHECK-NEXT: or a2, a3, a344; CHECK-NEXT: callx0 a845; CHECK-NEXT: l32i a0, a1, 046; CHECK: ret47 %1 = call i32 %a(i32 %b)48 ret i32 %149}50