|  | ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py | 
|  | ; RUN: opt < %s -S -passes='require<globals-aa>,early-cse<memssa>' -earlycse-debug-hash | FileCheck %s | 
|  |  | 
|  | define i16 @f1() readonly { | 
|  | ret i16 0 | 
|  | } | 
|  |  | 
|  | declare void @f2() | 
|  |  | 
|  | ; Check that EarlyCSE correctly handles function calls that don't have | 
|  | ; a MemoryAccess.  In this case the calls to @f1 have no | 
|  | ; MemoryAccesses since globals-aa determines that @f1 doesn't | 
|  | ; read/write memory at all. | 
|  |  | 
|  | define void @f3() { | 
|  | ; CHECK-LABEL: @f3( | 
|  | ; CHECK-NEXT:    [[CALL1:%.*]] = call i16 @f1() | 
|  | ; CHECK-NEXT:    call void @f2() | 
|  | ; CHECK-NEXT:    ret void | 
|  | ; | 
|  | %call1 = call i16 @f1() | 
|  | call void @f2() | 
|  | %call2 = call i16 @f1() | 
|  | ret void | 
|  | } |