| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py |
| ; RUN: opt < %s -S -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 |
| } |