; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mtriple=mips64-unknown-linux < %s | FileCheck %s
-; FIXME: doesn't generate any CHECK lines
define i32 @main() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*){
+; CHECK-LABEL: main:
+; CHECK: # %bb.0:
+; CHECK-NEXT: daddiu $sp, $sp, -16
+; CHECK-NEXT: .cfi_def_cfa_offset 16
+; CHECK-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill
+; CHECK-NEXT: .cfi_offset 31, -8
+; CHECK-NEXT: .Ltmp0:
+; CHECK-NEXT: jal foo
+; CHECK-NEXT: nop
+; CHECK-NEXT: .Ltmp1:
+; CHECK-NEXT: # %bb.1: # %good
+; CHECK-NEXT: addiu $2, $zero, 5
+; CHECK-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload
+; CHECK-NEXT: jr $ra
+; CHECK-NEXT: daddiu $sp, $sp, 16
+; CHECK-NEXT: .LBB0_2: # %bad
+; CHECK-NEXT: .Ltmp2:
+; CHECK-NEXT: jal _Unwind_Resume
+; CHECK-NEXT: nop
%1 = invoke i32 @foo() to label %good unwind label %bad
good:
ret i32 5
ASM_FUNCTION_MIPS_RE = re.compile(
r'^_?(?P<func>[^:]+):[ \t]*#+[ \t]*@"?(?P=func)"?\n[^:]*?' # f: (name of func)
+ r'(?:\s*\.?Ltmp[^:\n]*:\n)?[^:]*?' # optional .Ltmp<N> for EH
r'(?:^[ \t]+\.(frame|f?mask|set).*?\n)+' # Mips+LLVM standard asm prologue
r'(?P<body>.*?)\n' # (body of the function)
# Mips+LLVM standard asm epilogue