brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 921f89a Raw
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