brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 153dfa1 Raw
73 lines · plain
1// RUN: mlir-translate -mlir-to-llvmir -split-input-file %s | FileCheck %s2 3llvm.func @__gxx_personality_v0(...) -> i324 5// CHECK: declare fastcc void @cconv_fastcc()6// CHECK: declare        void @cconv_ccc()7// CHECK: declare tailcc void @cconv_tailcc()8// CHECK: declare ghccc  void @cconv_ghccc()9llvm.func fastcc @cconv_fastcc()10llvm.func ccc    @cconv_ccc()11llvm.func tailcc @cconv_tailcc()12llvm.func cc_10  @cconv_ghccc()13 14// CHECK-LABEL: @test_ccs15llvm.func @test_ccs() {16  // CHECK-NEXT: call fastcc void @cconv_fastcc()17  // CHECK-NEXT: call        void @cconv_ccc()18  // CHECK-NEXT: call        void @cconv_ccc()19  // CHECK-NEXT: call tailcc void @cconv_tailcc()20  // CHECK-NEXT: call ghccc  void @cconv_ghccc()21  // CHECK-NEXT: ret void22  llvm.call fastcc @cconv_fastcc() : () -> ()23  llvm.call ccc    @cconv_ccc()    : () -> ()24  llvm.call        @cconv_ccc()    : () -> ()25  llvm.call tailcc @cconv_tailcc() : () -> ()26  llvm.call cc_10  @cconv_ghccc()  : () -> ()27  llvm.return28}29 30// CHECK-LABEL: @test_ccs_invoke31llvm.func @test_ccs_invoke() attributes { personality = @__gxx_personality_v0 } {32  // CHECK-NEXT: invoke fastcc void @cconv_fastcc()33  // CHECK-NEXT:   to label %[[normal1:[0-9]+]] unwind label %[[unwind:[0-9]+]]34  llvm.invoke fastcc @cconv_fastcc() to ^bb1 unwind ^bb6 : () -> ()35 36^bb1:37  // CHECK: [[normal1]]:38  // CHECK-NEXT: invoke void @cconv_ccc()39  // CHECK-NEXT:   to label %[[normal2:[0-9]+]] unwind label %[[unwind:[0-9]+]]40  llvm.invoke ccc @cconv_ccc() to ^bb2 unwind ^bb6 : () -> ()41 42^bb2:43  // CHECK: [[normal2]]:44  // CHECK-NEXT: invoke void @cconv_ccc()45  // CHECK-NEXT:   to label %[[normal3:[0-9]+]] unwind label %[[unwind:[0-9]+]]46  llvm.invoke @cconv_ccc() to ^bb3 unwind ^bb6 : () -> ()47 48^bb3:49  // CHECK: [[normal3]]:50  // CHECK-NEXT: invoke tailcc void @cconv_tailcc()51  // CHECK-NEXT:   to label %[[normal4:[0-9]+]] unwind label %[[unwind:[0-9]+]]52  llvm.invoke tailcc @cconv_tailcc() to ^bb4 unwind ^bb6 : () -> ()53 54^bb4:55  // CHECK: [[normal4]]:56  // CHECK-NEXT: invoke ghccc void @cconv_ghccc()57  // CHECK-NEXT:   to label %[[normal5:[0-9]+]] unwind label %[[unwind:[0-9]+]]58  llvm.invoke cc_10 @cconv_ghccc() to ^bb5 unwind ^bb6 : () -> ()59 60^bb5:61  // CHECK: [[normal5]]:62  // CHECK-NEXT: ret void63  llvm.return64 65  // CHECK: [[unwind]]:66  // CHECK-NEXT: landingpad { ptr, i32 }67  // CHECK-NEXT: cleanup68  // CHECK-NEXT: ret void69^bb6:70  %0 = llvm.landingpad cleanup : !llvm.struct<(ptr, i32)>71  llvm.return72}73