Rafael Espindola | d7bb2de | 2016-03-23 21:16:33 +0000 | [diff] [blame] | 1 | ; RUN: llvm-link -S -o - %s %p/Inputs/comdat16.ll | FileCheck %s |
| 2 | |
| 3 | $c1 = comdat any |
| 4 | |
| 5 | @v1 = weak_odr global i32 42, comdat($c1) |
| 6 | define weak_odr i32 @f1(i8*) comdat($c1) { |
| 7 | bb10: |
| 8 | br label %bb11 |
| 9 | bb11: |
| 10 | ret i32 42 |
| 11 | } |
| 12 | |
| 13 | @r11 = global i32* @v1 |
| 14 | @r12 = global i32 (i8*)* @f1 |
| 15 | |
| 16 | @a11 = alias i32, i32* @v1 |
| 17 | @a12 = alias i16, bitcast (i32* @v1 to i16*) |
| 18 | |
| 19 | @a13 = alias i32 (i8*), i32 (i8*)* @f1 |
| 20 | @a14 = alias i16, bitcast (i32 (i8*)* @f1 to i16*) |
| 21 | @a15 = alias i16, i16* @a14 |
| 22 | |
| 23 | ; CHECK: $c1 = comdat any |
| 24 | ; CHECK: $c2 = comdat any |
| 25 | |
| 26 | ; CHECK-DAG: @will_be_undefined = external global i32 |
| 27 | |
| 28 | ; CHECK-DAG: @v1 = weak_odr global i32 42, comdat($c1) |
| 29 | |
| 30 | ; CHECK-DAG: @r11 = global i32* @v1{{$}} |
| 31 | ; CHECK-DAG: @r12 = global i32 (i8*)* @f1{{$}} |
| 32 | |
| 33 | ; CHECK-DAG: @r21 = global i32* @v1{{$}} |
| 34 | ; CHECK-DAG: @r22 = global i32 (i8*)* @f1{{$}} |
| 35 | |
| 36 | ; CHECK-DAG: @v1.1 = internal global i32 41, comdat($c2) |
| 37 | |
| 38 | ; CHECK-DAG: @a11 = alias i32, i32* @v1{{$}} |
| 39 | ; CHECK-DAG: @a12 = alias i16, bitcast (i32* @v1 to i16*) |
| 40 | |
| 41 | ; CHECK-DAG: @a13 = alias i32 (i8*), i32 (i8*)* @f1{{$}} |
| 42 | ; CHECK-DAG: @a14 = alias i16, bitcast (i32 (i8*)* @f1 to i16*) |
| 43 | |
| 44 | ; CHECK-DAG: @a21 = alias i32, i32* @v1.1{{$}} |
| 45 | ; CHECK-DAG: @a22 = alias i16, bitcast (i32* @v1.1 to i16*) |
| 46 | |
| 47 | ; CHECK-DAG: @a23 = alias i32 (i8*), i32 (i8*)* @f1.2{{$}} |
| 48 | ; CHECK-DAG: @a24 = alias i16, bitcast (i32 (i8*)* @f1.2 to i16*) |
| 49 | |
| 50 | ; CHECK: define weak_odr protected i32 @f1(i8*) comdat($c1) { |
| 51 | ; CHECK-NEXT: bb10: |
| 52 | ; CHECK-NEXT: br label %bb11{{$}} |
| 53 | ; CHECK: bb11: |
| 54 | ; CHECK-NEXT: ret i32 42 |
| 55 | ; CHECK-NEXT: } |
| 56 | |
| 57 | ; CHECK: define internal i32 @f1.2(i8* %this) comdat($c2) { |
| 58 | ; CHECK-NEXT: bb20: |
| 59 | ; CHECK-NEXT: store i8* %this, i8** null |
| 60 | ; CHECK-NEXT: br label %bb21 |
| 61 | ; CHECK: bb21: |
| 62 | ; CHECK-NEXT: ret i32 41 |
| 63 | ; CHECK-NEXT: } |