diff --git a/llvm/test/CodeGen/VE/Scalar/builtin_sjlj_landingpad.ll b/llvm/test/CodeGen/VE/Scalar/builtin_sjlj_landingpad.ll --- a/llvm/test/CodeGen/VE/Scalar/builtin_sjlj_landingpad.ll +++ b/llvm/test/CodeGen/VE/Scalar/builtin_sjlj_landingpad.ll @@ -257,37 +257,6 @@ ; PIC-NEXT: bsic %s10, (, %s12) ; PIC-NEXT: or %s0, 1, (0)1 ; PIC-NEXT: br.l.t .LBB0_2 -; PIC-NEXT: .Lfunc_end0: -; PIC-NEXT: .size foo, .Lfunc_end0-foo -; PIC-NEXT: .size .Lfoo$local, .Lfunc_end0-foo -; PIC-NEXT: .section .rodata,"a",@progbits -; PIC-NEXT: .p2align 2 -; PIC-NEXT: .LJTI0_0: -; PIC-NEXT: .4byte .LBB0_6-foo -; PIC-NEXT: .section .gcc_except_table,"a",@progbits -; PIC-NEXT: .p2align 2 -; PIC-NEXT: GCC_except_table0: -; PIC-NEXT: .Lexception0: -; PIC-NEXT: .byte 255 # @LPStart Encoding = omit -; PIC-NEXT: .byte 0 # @TType Encoding = absptr -; PIC-NEXT: .uleb128 .Lttbase0-.Lttbaseref0 -; PIC-NEXT: .Lttbaseref0: -; PIC-NEXT: .byte 3 # Call site Encoding = udata4 -; PIC-NEXT: .uleb128 .Lcst_end0-.Lcst_begin0 -; PIC-NEXT: .Lcst_begin0: -; PIC-NEXT: .byte 0 # >> Call Site 0 << -; PIC-NEXT: # On exception at call site 0 -; PIC-NEXT: .byte 1 # Action: 1 -; PIC-NEXT: .Lcst_end0: -; PIC-NEXT: .byte 1 # >> Action Record 1 << -; PIC-NEXT: # Catch TypeInfo 1 -; PIC-NEXT: .byte 0 # No further actions -; PIC-NEXT: .p2align 2 -; PIC-NEXT: # >> Catch TypeInfos << -; PIC-NEXT: .8byte SomeGlobal # TypeInfo 1 -; PIC-NEXT: .Lttbase0: -; PIC-NEXT: .p2align 2 -; PIC-NEXT: # -- End function entry: invoke void @errorbar() to label %exit unwind label %handle diff --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ve-basic.ll.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ve-basic.ll.expected --- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ve-basic.ll.expected +++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ve-basic.ll.expected @@ -41,6 +41,42 @@ ; CHECK-NEXT: ld %s10, 8(, %s11) ; CHECK-NEXT: ld %s9, (, %s11) ; CHECK-NEXT: b.l.t (, %s10) +; +; PIC-LABEL: dsolocal: +; PIC: # %bb.0: # %entry +; PIC-NEXT: st %s9, (, %s11) +; PIC-NEXT: st %s10, 8(, %s11) +; PIC-NEXT: st %s15, 24(, %s11) +; PIC-NEXT: st %s16, 32(, %s11) +; PIC-NEXT: or %s9, 0, %s11 +; PIC-NEXT: lea %s11, -240(, %s11) +; PIC-NEXT: brge.l.t %s11, %s8, .LBB1_2 +; PIC-NEXT: # %bb.1: # %entry +; PIC-NEXT: ld %s61, 24(, %s14) +; PIC-NEXT: or %s62, 0, %s0 +; PIC-NEXT: lea %s63, 315 +; PIC-NEXT: shm.l %s63, (%s61) +; PIC-NEXT: shm.l %s8, 8(%s61) +; PIC-NEXT: shm.l %s11, 16(%s61) +; PIC-NEXT: monc +; PIC-NEXT: or %s0, 0, %s62 +; PIC-NEXT: .LBB1_2: # %entry +; PIC-NEXT: lea %s15, _GLOBAL_OFFSET_TABLE_@pc_lo(-24) +; PIC-NEXT: and %s15, %s15, (32)0 +; PIC-NEXT: sic %s16 +; PIC-NEXT: lea.sl %s15, _GLOBAL_OFFSET_TABLE_@pc_hi(%s16, %s15) +; PIC-NEXT: lea %s12, ext@plt_lo(-24) +; PIC-NEXT: and %s12, %s12, (32)0 +; PIC-NEXT: sic %s16 +; PIC-NEXT: lea.sl %s12, ext@plt_hi(%s16, %s12) +; PIC-NEXT: bsic %s10, (, %s12) +; PIC-NEXT: or %s0, 2, (0)1 +; PIC-NEXT: or %s11, 0, %s9 +; PIC-NEXT: ld %s16, 32(, %s11) +; PIC-NEXT: ld %s15, 24(, %s11) +; PIC-NEXT: ld %s10, 8(, %s11) +; PIC-NEXT: ld %s9, (, %s11) +; PIC-NEXT: b.l.t (, %s10) entry: call void @ext() ret i32 2 diff --git a/llvm/utils/UpdateTestChecks/asm.py b/llvm/utils/UpdateTestChecks/asm.py --- a/llvm/utils/UpdateTestChecks/asm.py +++ b/llvm/utils/UpdateTestChecks/asm.py @@ -171,6 +171,9 @@ ASM_FUNCTION_VE_RE = re.compile( r'^_?(?P[^:]+):[ \t]*#+[ \t]*@(?P=func)\n' + r'(?:\s*\.?L(?P=func)\$local:\n)?' # optional .L$local: due to -fno-semantic-interposition + r'(?:\s*\.type\s+\.?L(?P=func)\$local,@function\n)?' # optional .type .L$local + r'(?:\s*\.?Lfunc_begin[^:\n]*:\n)?[^:]*?' r'(?P^##?[ \t]+[^:]+:.*?)\s*' r'.Lfunc_end[0-9]+:\n', flags=(re.M | re.S))