; RUN: mlir-translate -import-llvm %s | FileCheck %s ; CHECK-LABEL: llvm.func @test( ; CHECK-SAME: %[[VAL_0:.*]]: i16 {llvm.noundef, llvm.signext}) -> (i16 {llvm.signext}) attributes {personality = @__gxx_personality_v0} { define signext i16 @test(i16 noundef signext %0) personality ptr @__gxx_personality_v0 { ; CHECK: %[[VAL_3:.*]] = llvm.invoke @somefunc(%[[VAL_0]]) to ^bb2 unwind ^bb1 : (i16 {llvm.noundef, llvm.signext}) -> (i16 {llvm.signext}) %2 = invoke signext i16 @somefunc(i16 noundef signext %0) to label %7 unwind label %3 3: ; preds = %1 %4 = landingpad { ptr, i32 } catch ptr null %5 = extractvalue { ptr, i32 } %4, 0 %6 = tail call ptr @__cxa_begin_catch(ptr %5) #2 tail call void @__cxa_end_catch() br label %7 7: ; preds = %1, %3 %8 = phi i16 [ 0, %3 ], [ %2, %1 ] ret i16 %8 } declare noundef signext i16 @somefunc(i16 noundef signext) declare i32 @__gxx_personality_v0(...) declare ptr @__cxa_begin_catch(ptr) declare void @__cxa_end_catch()