Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / LICM / pr51333.ll
blob0ee4336c7fa5b42fc2139c0a18ce20c81b7addd4
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -S -passes='early-cse<memssa>,loop-mssa(licm)' < %s | FileCheck %s
4 ; This used to assert because was have a MemoryDef for what turns out to be
5 ; a readnone call after EarlyCSE.
7 @fn_ptr = external global ptr, align 1
9 define void @test() {
10 ; CHECK-LABEL: @test(
11 ; CHECK-NEXT:  entry:
12 ; CHECK-NEXT:    br label [[DO_BODY:%.*]]
13 ; CHECK:       do.body:
14 ; CHECK-NEXT:    store ptr @readnone_fn, ptr @fn_ptr, align 8
15 ; CHECK-NEXT:    call void @readnone_fn()
16 ; CHECK-NEXT:    call void @foo()
17 ; CHECK-NEXT:    br label [[DO_BODY]]
19 entry:
20   br label %do.body
22 do.body:
23   store ptr @readnone_fn, ptr @fn_ptr
24   %fn = load ptr, ptr @fn_ptr
25   call void %fn()
26   call void @foo()
27   br label %do.body
30 declare void @foo()
31 declare void @readnone_fn() readnone