Antonio Frighetto f76921ac0d
[GVN] Regenerate test checks to use UTC (NFC)
Tests have been regenerated to favour UTC-emitted lines. While
this may not be strictly necessary – as the final migration to
MemorySSA should boil down to a simple flip –, adopting UTC-based
lines should overall make tests more robust as well as easier to
diff (at least on the majority of the tests instances where the new
lines have been added). Crash tests now feature check lines as well
(notably, pr17852.ll, pr24397.ll and unreachable_block_infinite_loop.ll).
Pre-2010 tests leveraging llvm-dis have not been updated.
2025-10-07 14:10:00 +02:00

63 lines
2.4 KiB
LLVM

; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
; RUN: opt -passes=gvn -S < %s | FileCheck %s
target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"
target triple = "i686-pc-windows-msvc"
%eh.ThrowInfo = type { i32, ptr, ptr, ptr }
%struct.A = type { ptr }
@"_TI1?AUA@@" = external constant %eh.ThrowInfo
define i8 @f() personality ptr @__CxxFrameHandler3 {
; CHECK-LABEL: define i8 @f() personality ptr @__CxxFrameHandler3 {
; CHECK-NEXT: [[ENTRY:.*:]]
; CHECK-NEXT: [[B:%.*]] = alloca i8, align 1
; CHECK-NEXT: [[C:%.*]] = alloca i8, align 1
; CHECK-NEXT: store i8 42, ptr [[B]], align 1
; CHECK-NEXT: store i8 13, ptr [[C]], align 1
; CHECK-NEXT: invoke void @_CxxThrowException(ptr [[B]], ptr nonnull @"_TI1?AUA@@")
; CHECK-NEXT: to label %[[UNREACHABLE:.*]] unwind label %[[CATCH_DISPATCH:.*]]
; CHECK: [[CATCH_DISPATCH]]:
; CHECK-NEXT: [[CS1:%.*]] = catchswitch within none [label %catch] unwind to caller
; CHECK: [[CATCH:.*:]]
; CHECK-NEXT: [[CATCHPAD:%.*]] = catchpad within [[CS1]] [ptr null, i32 64, ptr null]
; CHECK-NEXT: store i8 5, ptr [[B]], align 1
; CHECK-NEXT: catchret from [[CATCHPAD]] to label %[[TRY_CONT:.*]]
; CHECK: [[TRY_CONT]]:
; CHECK-NEXT: [[LOAD_B:%.*]] = load i8, ptr [[B]], align 1
; CHECK-NEXT: [[LOAD_C:%.*]] = load i8, ptr [[C]], align 1
; CHECK-NEXT: [[ADD:%.*]] = add i8 [[LOAD_B]], [[LOAD_C]]
; CHECK-NEXT: ret i8 [[ADD]]
; CHECK: [[UNREACHABLE]]:
; CHECK-NEXT: unreachable
;
entry:
%b = alloca i8
%c = alloca i8
store i8 42, ptr %b
store i8 13, ptr %c
invoke void @_CxxThrowException(ptr %b, ptr nonnull @"_TI1?AUA@@")
to label %unreachable unwind label %catch.dispatch
catch.dispatch: ; preds = %entry
%cs1 = catchswitch within none [label %catch] unwind to caller
catch: ; preds = %catch.dispatch
%catchpad = catchpad within %cs1 [ptr null, i32 64, ptr null]
store i8 5, ptr %b
catchret from %catchpad to label %try.cont
try.cont: ; preds = %catch
%load_b = load i8, ptr %b
%load_c = load i8, ptr %c
%add = add i8 %load_b, %load_c
ret i8 %add
unreachable: ; preds = %entry
unreachable
}
declare i32 @__CxxFrameHandler3(...)
declare x86_stdcallcc void @_CxxThrowException(ptr, ptr)