1 ; RUN: llc -mtriple i386-pc-win32 < %s | FileCheck %s 2 3 $f1 = comdat any 4 @v1 = global i32 0, comdat($f1) 5 define void @f1() comdat($f1) { 6 ret void 7 } 8 9 $f2 = comdat exactmatch 10 @v2 = global i32 0, comdat($f2) 11 define void @f2() comdat($f2) { 12 ret void 13 } 14 15 $f3 = comdat largest 16 @v3 = global i32 0, comdat($f3) 17 define void @f3() comdat($f3) { 18 ret void 19 } 20 21 $f4 = comdat noduplicates 22 @v4 = global i32 0, comdat($f4) 23 define void @f4() comdat($f4) { 24 ret void 25 } 26 27 $f5 = comdat samesize 28 @v5 = global i32 0, comdat($f5) 29 define void @f5() comdat($f5) { 30 ret void 31 } 32 33 $f6 = comdat samesize 34 @v6 = global i32 0, comdat($f6) 35 @f6 = global i32 0, comdat($f6) 36 37 $"\01@f7@0" = comdat any 38 define x86_fastcallcc void @"\01@v7@0"() comdat($"\01@f7@0") { 39 ret void 40 } 41 define x86_fastcallcc void @"\01@f7@0"() comdat($"\01@f7@0") { 42 ret void 43 } 44 45 $f8 = comdat any 46 define x86_fastcallcc void @v8() comdat($f8) { 47 ret void 48 } 49 define x86_fastcallcc void @f8() comdat($f8) { 50 ret void 51 } 52 53 $vftable = comdat largest 54 55 @some_name = private unnamed_addr constant [2 x i8*] zeroinitializer, comdat($vftable) 56 @vftable = alias i8*, getelementptr([2 x i8*], [2 x i8*]* @some_name, i32 0, i32 1) 57 58 ; CHECK: .section .text,"xr",discard,_f1 59 ; CHECK: .globl _f1 60 ; CHECK: .section .text,"xr",same_contents,_f2 61 ; CHECK: .globl _f2 62 ; CHECK: .section .text,"xr",largest,_f3 63 ; CHECK: .globl _f3 64 ; CHECK: .section .text,"xr",one_only,_f4 65 ; CHECK: .globl _f4 66 ; CHECK: .section .text,"xr",same_size,_f5 67 ; CHECK: .globl _f5 68 ; CHECK: .section .text,"xr",associative,@f7@0 69 ; CHECK: .globl @v7@0 70 ; CHECK: .section .text,"xr",discard,@f7@0 71 ; CHECK: .globl @f7@0 72 ; CHECK: .section .text,"xr",associative,@f8@0 73 ; CHECK: .globl @v8@0 74 ; CHECK: .section .text,"xr",discard,@f8@0 75 ; CHECK: .globl @f8@0 76 ; CHECK: .section .bss,"bw",associative,_f1 77 ; CHECK: .globl _v1 78 ; CHECK: .section .bss,"bw",associative,_f2 79 ; CHECK: .globl _v2 80 ; CHECK: .section .bss,"bw",associative,_f3 81 ; CHECK: .globl _v3 82 ; CHECK: .section .bss,"bw",associative,_f4 83 ; CHECK: .globl _v4 84 ; CHECK: .section .bss,"bw",associative,_f5 85 ; CHECK: .globl _v5 86 ; CHECK: .section .bss,"bw",associative,_f6 87 ; CHECK: .globl _v6 88 ; CHECK: .section .bss,"bw",same_size,_f6 89 ; CHECK: .globl _f6 90 ; CHECK: .section .rdata,"dr",largest,_vftable 91 ; CHECK: .globl _vftable 92 ; CHECK: _vftable = L_some_name+4 93