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 3 4; This used to assert because was have a MemoryDef for what turns out to be 5; a readnone call after EarlyCSE. 6 7@fn_ptr = external global ptr, align 1 8 9define 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]] 18; 19entry: 20 br label %do.body 21 22do.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 28} 29 30declare void @foo() 31declare void @readnone_fn() readnone 32