| ; RUN: opt -passes=constmerge -S < %s | FileCheck %s |
| |
| ; @ComdatGlobal1 can be merged into @RegularGlobal which does not have |
| ; a comdat group and should not get dropped by the linker. |
| ; Same for @ComdatGlobal2 into @PrivateGlobal. |
| |
| $test = comdat any |
| |
| @ComdatGlobal1 = private unnamed_addr constant i32 111, comdat($test) |
| @RegularGlobal = constant i32 111 |
| |
| ; CHECK NOT: @ComdatGlobal1 |
| ; CHECK: @RegularGlobal |
| |
| @ComdatGlobal2 = private unnamed_addr constant i32 222, comdat($test) |
| @PrivateGlobal = private unnamed_addr constant i32 222 |
| |
| ; CHECK NOT: @ComdatGlobal2 |
| ; CHECK: @PrivateGlobal |
| |
| define void @test(ptr %P) comdat { |
| store ptr @ComdatGlobal1, ptr %P |
| store ptr @RegularGlobal, ptr %P |
| store ptr @ComdatGlobal2, ptr %P |
| store ptr @PrivateGlobal, ptr %P |
| ret void |
| } |