| OLD | NEW |
| 1 ; Tests if we handle global variables with relocation initializers. | 1 ; Tests if we handle global variables with relocation initializers. |
| 2 | 2 |
| 3 ; REQUIRES: allow_dump | 3 ; REQUIRES: allow_dump |
| 4 | 4 |
| 5 ; Test that we handle it in the ICE converter. | 5 ; Test that we handle it in the ICE converter. |
| 6 ; RUN: %lc2i -i %s --args -verbose inst | %iflc FileCheck %s | 6 ; RUN: %lc2i -i %s --args -verbose inst -threads=0 \ |
| 7 ; RUN: | %iflc FileCheck %s |
| 8 ; RUN: %lc2i -i %s --args -verbose inst -threads=0 \ |
| 9 ; RUN: | %iflc FileCheck --check-prefix=DUMP %s |
| 7 | 10 |
| 8 ; Test that we handle it using Subzero's bitcode reader. | 11 ; Test that we handle it using Subzero's bitcode reader. |
| 9 ; RUN: %p2i -i %s --args -verbose inst | FileCheck %s | 12 ; RUN: %p2i -i %s --args -verbose inst -threads=0 \ |
| 13 ; RUN: | FileCheck %s |
| 14 ; RUN: %p2i -i %s --args -verbose inst -threads=0 \ |
| 15 ; RUN: | FileCheck --check-prefix=DUMP %s |
| 10 | 16 |
| 11 @bytes = internal global [7 x i8] c"abcdefg" | 17 @bytes = internal global [7 x i8] c"abcdefg" |
| 12 ; CHECK: @bytes = internal global [7 x i8] c"abcdefg" | 18 ; DUMP: @bytes = internal global [7 x i8] c"abcdefg" |
| 13 ; CHECK: .type bytes,@object | 19 ; CHECK: .type bytes,@object |
| 14 ; CHECK: .section .data,"aw",@progbits | 20 ; CHECK: .section .data,"aw",@progbits |
| 15 ; CHECK:bytes: | 21 ; CHECK:bytes: |
| 16 ; CHECK: .byte 97 | 22 ; CHECK: .byte 97 |
| 17 ; CHECK: .byte 98 | 23 ; CHECK: .byte 98 |
| 18 ; CHECK: .byte 99 | 24 ; CHECK: .byte 99 |
| 19 ; CHECK: .byte 100 | 25 ; CHECK: .byte 100 |
| 20 ; CHECK: .byte 101 | 26 ; CHECK: .byte 101 |
| 21 ; CHECK: .byte 102 | 27 ; CHECK: .byte 102 |
| 22 ; CHECK: .byte 103 | 28 ; CHECK: .byte 103 |
| 23 ; CHECK: .size bytes, 7 | 29 ; CHECK: .size bytes, 7 |
| 24 | 30 |
| 25 @const_bytes = internal constant [7 x i8] c"abcdefg" | 31 @const_bytes = internal constant [7 x i8] c"abcdefg" |
| 26 ; CHECK: @const_bytes = internal constant [7 x i8] c"abcdefg" | 32 ; DUMP: @const_bytes = internal constant [7 x i8] c"abcdefg" |
| 27 ; CHECK: .type const_bytes,@object | 33 ; CHECK: .type const_bytes,@object |
| 28 ; CHECK: .section .rodata,"a",@progbits | 34 ; CHECK: .section .rodata,"a",@progbits |
| 29 ; CHECK:const_bytes: | 35 ; CHECK:const_bytes: |
| 30 ; CHECK: .byte 97 | 36 ; CHECK: .byte 97 |
| 31 ; CHECK: .byte 98 | 37 ; CHECK: .byte 98 |
| 32 ; CHECK: .byte 99 | 38 ; CHECK: .byte 99 |
| 33 ; CHECK: .byte 100 | 39 ; CHECK: .byte 100 |
| 34 ; CHECK: .byte 101 | 40 ; CHECK: .byte 101 |
| 35 ; CHECK: .byte 102 | 41 ; CHECK: .byte 102 |
| 36 ; CHECK: .byte 103 | 42 ; CHECK: .byte 103 |
| 37 ; CHECK: .size const_bytes, 7 | 43 ; CHECK: .size const_bytes, 7 |
| 38 | 44 |
| 39 @ptr_to_ptr = internal global i32 ptrtoint (i32* @ptr to i32) | 45 @ptr_to_ptr = internal global i32 ptrtoint (i32* @ptr to i32) |
| 40 ; CHECK: @ptr_to_ptr = internal global i32 ptrtoint (i32* @ptr to i32) | 46 ; DUMP: @ptr_to_ptr = internal global i32 ptrtoint (i32* @ptr to i32) |
| 41 ; CHECK: .type ptr_to_ptr,@object | 47 ; CHECK: .type ptr_to_ptr,@object |
| 42 ; CHECK: .section .data,"aw",@progbits | 48 ; CHECK: .section .data,"aw",@progbits |
| 43 ; CHECK:ptr_to_ptr: | 49 ; CHECK:ptr_to_ptr: |
| 44 ; CHECK: .long ptr | 50 ; CHECK: .long ptr |
| 45 ; CHECK: .size ptr_to_ptr, 4 | 51 ; CHECK: .size ptr_to_ptr, 4 |
| 46 | 52 |
| 47 @const_ptr_to_ptr = internal constant i32 ptrtoint (i32* @ptr to i32) | 53 @const_ptr_to_ptr = internal constant i32 ptrtoint (i32* @ptr to i32) |
| 48 ; CHECK: @const_ptr_to_ptr = internal constant i32 ptrtoint (i32* @ptr to i32) | 54 ; DUMP: @const_ptr_to_ptr = internal constant i32 ptrtoint (i32* @ptr to i32) |
| 49 ; CHECK: .type const_ptr_to_ptr,@object | 55 ; CHECK: .type const_ptr_to_ptr,@object |
| 50 ; CHECK: .section .rodata,"a",@progbits | 56 ; CHECK: .section .rodata,"a",@progbits |
| 51 ; CHECK:const_ptr_to_ptr: | 57 ; CHECK:const_ptr_to_ptr: |
| 52 ; CHECK: .long ptr | 58 ; CHECK: .long ptr |
| 53 ; CHECK: .size const_ptr_to_ptr, 4 | 59 ; CHECK: .size const_ptr_to_ptr, 4 |
| 54 | 60 |
| 55 @ptr_to_func = internal global i32 ptrtoint (void ()* @func to i32) | 61 @ptr_to_func = internal global i32 ptrtoint (void ()* @func to i32) |
| 56 ; CHECK: @ptr_to_func = internal global i32 ptrtoint (void ()* @func to i32) | 62 ; DUMP: @ptr_to_func = internal global i32 ptrtoint (void ()* @func to i32) |
| 57 ; CHECK: .type ptr_to_func,@object | 63 ; CHECK: .type ptr_to_func,@object |
| 58 ; CHECK: .section .data,"aw",@progbits | 64 ; CHECK: .section .data,"aw",@progbits |
| 59 ; CHECK:ptr_to_func: | 65 ; CHECK:ptr_to_func: |
| 60 ; CHECK: .long func | 66 ; CHECK: .long func |
| 61 ; CHECK: .size ptr_to_func, 4 | 67 ; CHECK: .size ptr_to_func, 4 |
| 62 | 68 |
| 63 @const_ptr_to_func = internal constant i32 ptrtoint (void ()* @func to i32) | 69 @const_ptr_to_func = internal constant i32 ptrtoint (void ()* @func to i32) |
| 64 ; CHECK: @const_ptr_to_func = internal constant i32 ptrtoint (void ()* @func to
i32) | 70 ; DUMP: @const_ptr_to_func = internal constant i32 ptrtoint (void ()* @func to i
32) |
| 65 ; CHECK: .type const_ptr_to_func,@object | 71 ; CHECK: .type const_ptr_to_func,@object |
| 66 ; CHECK: .section .rodata,"a",@progbits | 72 ; CHECK: .section .rodata,"a",@progbits |
| 67 ; CHECK:const_ptr_to_func: | 73 ; CHECK:const_ptr_to_func: |
| 68 ; CHECK: .long func | 74 ; CHECK: .long func |
| 69 ; CHECK: .size const_ptr_to_func, 4 | 75 ; CHECK: .size const_ptr_to_func, 4 |
| 70 | 76 |
| 71 @compound = internal global <{ [3 x i8], i32 }> <{ [3 x i8] c"foo", i32 ptrtoint
(void ()* @func to i32) }> | 77 @compound = internal global <{ [3 x i8], i32 }> <{ [3 x i8] c"foo", i32 ptrtoint
(void ()* @func to i32) }> |
| 72 ; CHECK: @compound = internal global <{ [3 x i8], i32 }> <{ [3 x i8] c"foo", i32
ptrtoint (void ()* @func to i32) }> | 78 ; DUMP: @compound = internal global <{ [3 x i8], i32 }> <{ [3 x i8] c"foo", i32
ptrtoint (void ()* @func to i32) }> |
| 73 ; CHECK: .type compound,@object | 79 ; CHECK: .type compound,@object |
| 74 ; CHECK: .section .data,"aw",@progbits | 80 ; CHECK: .section .data,"aw",@progbits |
| 75 ; CHECK:compound: | 81 ; CHECK:compound: |
| 76 ; CHECK: .byte 102 | 82 ; CHECK: .byte 102 |
| 77 ; CHECK: .byte 111 | 83 ; CHECK: .byte 111 |
| 78 ; CHECK: .byte 111 | 84 ; CHECK: .byte 111 |
| 79 ; CHECK: .long func | 85 ; CHECK: .long func |
| 80 ; CHECK: .size compound, 7 | 86 ; CHECK: .size compound, 7 |
| 81 | 87 |
| 82 @const_compound = internal constant <{ [3 x i8], i32 }> <{ [3 x i8] c"foo", i32
ptrtoint (void ()* @func to i32) }> | 88 @const_compound = internal constant <{ [3 x i8], i32 }> <{ [3 x i8] c"foo", i32
ptrtoint (void ()* @func to i32) }> |
| 83 ; CHECK: @const_compound = internal constant <{ [3 x i8], i32 }> <{ [3 x i8] c"f
oo", i32 ptrtoint (void ()* @func to i32) }> | 89 ; DUMP: @const_compound = internal constant <{ [3 x i8], i32 }> <{ [3 x i8] c"fo
o", i32 ptrtoint (void ()* @func to i32) }> |
| 84 ; CHECK: .type const_compound,@object | 90 ; CHECK: .type const_compound,@object |
| 85 ; CHECK: .section .rodata,"a",@progbits | 91 ; CHECK: .section .rodata,"a",@progbits |
| 86 ; CHECK:const_compound: | 92 ; CHECK:const_compound: |
| 87 ; CHECK: .byte 102 | 93 ; CHECK: .byte 102 |
| 88 ; CHECK: .byte 111 | 94 ; CHECK: .byte 111 |
| 89 ; CHECK: .byte 111 | 95 ; CHECK: .byte 111 |
| 90 ; CHECK: .long func | 96 ; CHECK: .long func |
| 91 ; CHECK: .size const_compound, 7 | 97 ; CHECK: .size const_compound, 7 |
| 92 | 98 |
| 93 @ptr = internal global i32 ptrtoint ([7 x i8]* @bytes to i32) | 99 @ptr = internal global i32 ptrtoint ([7 x i8]* @bytes to i32) |
| 94 ; CHECK: @ptr = internal global i32 ptrtoint ([7 x i8]* @bytes to i32) | 100 ; DUMP: @ptr = internal global i32 ptrtoint ([7 x i8]* @bytes to i32) |
| 95 ; CHECK: .type ptr,@object | 101 ; CHECK: .type ptr,@object |
| 96 ; CHECK: .section .data,"aw",@progbits | 102 ; CHECK: .section .data,"aw",@progbits |
| 97 ; CHECK:ptr: | 103 ; CHECK:ptr: |
| 98 ; CHECK: .long bytes | 104 ; CHECK: .long bytes |
| 99 ; CHECK: .size ptr, 4 | 105 ; CHECK: .size ptr, 4 |
| 100 | 106 |
| 101 @const_ptr = internal constant i32 ptrtoint ([7 x i8]* @bytes to i32) | 107 @const_ptr = internal constant i32 ptrtoint ([7 x i8]* @bytes to i32) |
| 102 ; CHECK: @const_ptr = internal constant i32 ptrtoint ([7 x i8]* @bytes to i32) | 108 ; DUMP: @const_ptr = internal constant i32 ptrtoint ([7 x i8]* @bytes to i32) |
| 103 ; CHECK: .type const_ptr,@object | 109 ; CHECK: .type const_ptr,@object |
| 104 ; CHECK: .section .rodata,"a",@progbits | 110 ; CHECK: .section .rodata,"a",@progbits |
| 105 ; CHECK:const_ptr: | 111 ; CHECK:const_ptr: |
| 106 ; CHECK: .long bytes | 112 ; CHECK: .long bytes |
| 107 ; CHECK: .size const_ptr, 4 | 113 ; CHECK: .size const_ptr, 4 |
| 108 | 114 |
| 109 @addend_ptr = internal global i32 add (i32 ptrtoint (i32* @ptr to i32), i32 1) | 115 @addend_ptr = internal global i32 add (i32 ptrtoint (i32* @ptr to i32), i32 1) |
| 110 ; CHECK: @addend_ptr = internal global i32 add (i32 ptrtoint (i32* @ptr to i32),
i32 1) | 116 ; DUMP: @addend_ptr = internal global i32 add (i32 ptrtoint (i32* @ptr to i32),
i32 1) |
| 111 ; CHECK: .type addend_ptr,@object | 117 ; CHECK: .type addend_ptr,@object |
| 112 ; CHECK: .section .data,"aw",@progbits | 118 ; CHECK: .section .data,"aw",@progbits |
| 113 ; CHECK:addend_ptr: | 119 ; CHECK:addend_ptr: |
| 114 ; CHECK: .long ptr + 1 | 120 ; CHECK: .long ptr + 1 |
| 115 ; CHECK: .size addend_ptr, 4 | 121 ; CHECK: .size addend_ptr, 4 |
| 116 | 122 |
| 117 @const_addend_ptr = internal constant i32 add (i32 ptrtoint (i32* @ptr to i32),
i32 1) | 123 @const_addend_ptr = internal constant i32 add (i32 ptrtoint (i32* @ptr to i32),
i32 1) |
| 118 ; CHECK: @const_addend_ptr = internal constant i32 add (i32 ptrtoint (i32* @ptr
to i32), i32 1) | 124 ; DUMP: @const_addend_ptr = internal constant i32 add (i32 ptrtoint (i32* @ptr t
o i32), i32 1) |
| 119 ; CHECK: .type const_addend_ptr,@object | 125 ; CHECK: .type const_addend_ptr,@object |
| 120 ; CHECK: .section .rodata,"a",@progbits | 126 ; CHECK: .section .rodata,"a",@progbits |
| 121 ; CHECK:const_addend_ptr: | 127 ; CHECK:const_addend_ptr: |
| 122 ; CHECK: .long ptr + 1 | 128 ; CHECK: .long ptr + 1 |
| 123 ; CHECK: .size const_addend_ptr, 4 | 129 ; CHECK: .size const_addend_ptr, 4 |
| 124 | 130 |
| 125 @addend_negative = internal global i32 add (i32 ptrtoint (i32* @ptr to i32), i32
-1) | 131 @addend_negative = internal global i32 add (i32 ptrtoint (i32* @ptr to i32), i32
-1) |
| 126 ; CHECK: @addend_negative = internal global i32 add (i32 ptrtoint (i32* @ptr to
i32), i32 -1) | 132 ; DUMP: @addend_negative = internal global i32 add (i32 ptrtoint (i32* @ptr to i
32), i32 -1) |
| 127 ; CHECK: .type addend_negative,@object | 133 ; CHECK: .type addend_negative,@object |
| 128 ; CHECK: .section .data,"aw",@progbits | 134 ; CHECK: .section .data,"aw",@progbits |
| 129 ; CHECK:addend_negative: | 135 ; CHECK:addend_negative: |
| 130 ; CHECK: .long ptr - 1 | 136 ; CHECK: .long ptr - 1 |
| 131 ; CHECK: .size addend_negative, 4 | 137 ; CHECK: .size addend_negative, 4 |
| 132 | 138 |
| 133 @const_addend_negative = internal constant i32 add (i32 ptrtoint (i32* @ptr to i
32), i32 -1) | 139 @const_addend_negative = internal constant i32 add (i32 ptrtoint (i32* @ptr to i
32), i32 -1) |
| 134 ; CHECK: @const_addend_negative = internal constant i32 add (i32 ptrtoint (i32*
@ptr to i32), i32 -1) | 140 ; DUMP: @const_addend_negative = internal constant i32 add (i32 ptrtoint (i32* @
ptr to i32), i32 -1) |
| 135 ; CHECK: .type const_addend_negative,@object | 141 ; CHECK: .type const_addend_negative,@object |
| 136 ; CHECK: .section .rodata,"a",@progbits | 142 ; CHECK: .section .rodata,"a",@progbits |
| 137 ; CHECK:const_addend_negative: | 143 ; CHECK:const_addend_negative: |
| 138 ; CHECK: .long ptr - 1 | 144 ; CHECK: .long ptr - 1 |
| 139 ; CHECK: .size const_addend_negative, 4 | 145 ; CHECK: .size const_addend_negative, 4 |
| 140 | 146 |
| 141 @addend_array1 = internal global i32 add (i32 ptrtoint ([7 x i8]* @bytes to i32)
, i32 1) | 147 @addend_array1 = internal global i32 add (i32 ptrtoint ([7 x i8]* @bytes to i32)
, i32 1) |
| 142 ; CHECK: @addend_array1 = internal global i32 add (i32 ptrtoint ([7 x i8]* @byte
s to i32), i32 1) | 148 ; DUMP: @addend_array1 = internal global i32 add (i32 ptrtoint ([7 x i8]* @bytes
to i32), i32 1) |
| 143 ; CHECK: .type addend_array1,@object | 149 ; CHECK: .type addend_array1,@object |
| 144 ; CHECK: .section .data,"aw",@progbits | 150 ; CHECK: .section .data,"aw",@progbits |
| 145 ; CHECK:addend_array1: | 151 ; CHECK:addend_array1: |
| 146 ; CHECK: .long bytes + 1 | 152 ; CHECK: .long bytes + 1 |
| 147 ; CHECK: .size addend_array1, 4 | 153 ; CHECK: .size addend_array1, 4 |
| 148 | 154 |
| 149 @const_addend_array1 = internal constant i32 add (i32 ptrtoint ([7 x i8]* @bytes
to i32), i32 1) | 155 @const_addend_array1 = internal constant i32 add (i32 ptrtoint ([7 x i8]* @bytes
to i32), i32 1) |
| 150 ; CHECK: @const_addend_array1 = internal constant i32 add (i32 ptrtoint ([7 x i8
]* @bytes to i32), i32 1) | 156 ; DUMP: @const_addend_array1 = internal constant i32 add (i32 ptrtoint ([7 x i8]
* @bytes to i32), i32 1) |
| 151 ; CHECK: .type const_addend_array1,@object | 157 ; CHECK: .type const_addend_array1,@object |
| 152 ; CHECK: .section .rodata,"a",@progbits | 158 ; CHECK: .section .rodata,"a",@progbits |
| 153 ; CHECK:const_addend_array1: | 159 ; CHECK:const_addend_array1: |
| 154 ; CHECK: .long bytes + 1 | 160 ; CHECK: .long bytes + 1 |
| 155 ; CHECK: .size const_addend_array1, 4 | 161 ; CHECK: .size const_addend_array1, 4 |
| 156 | 162 |
| 157 @addend_array2 = internal global i32 add (i32 ptrtoint ([7 x i8]* @bytes to i32)
, i32 7) | 163 @addend_array2 = internal global i32 add (i32 ptrtoint ([7 x i8]* @bytes to i32)
, i32 7) |
| 158 ; CHECK: @addend_array2 = internal global i32 add (i32 ptrtoint ([7 x i8]* @byte
s to i32), i32 7) | 164 ; DUMP: @addend_array2 = internal global i32 add (i32 ptrtoint ([7 x i8]* @bytes
to i32), i32 7) |
| 159 ; CHECK: .type addend_array2,@object | 165 ; CHECK: .type addend_array2,@object |
| 160 ; CHECK: .section .data,"aw",@progbits | 166 ; CHECK: .section .data,"aw",@progbits |
| 161 ; CHECK:addend_array2: | 167 ; CHECK:addend_array2: |
| 162 ; CHECK: .long bytes + 7 | 168 ; CHECK: .long bytes + 7 |
| 163 ; CHECK: .size addend_array2, 4 | 169 ; CHECK: .size addend_array2, 4 |
| 164 | 170 |
| 165 @const_addend_array2 = internal constant i32 add (i32 ptrtoint ([7 x i8]* @bytes
to i32), i32 7) | 171 @const_addend_array2 = internal constant i32 add (i32 ptrtoint ([7 x i8]* @bytes
to i32), i32 7) |
| 166 ; CHECK: @const_addend_array2 = internal constant i32 add (i32 ptrtoint ([7 x i8
]* @bytes to i32), i32 7) | 172 ; DUMP: @const_addend_array2 = internal constant i32 add (i32 ptrtoint ([7 x i8]
* @bytes to i32), i32 7) |
| 167 ; CHECK: .type const_addend_array2,@object | 173 ; CHECK: .type const_addend_array2,@object |
| 168 ; CHECK: .section .rodata,"a",@progbits | 174 ; CHECK: .section .rodata,"a",@progbits |
| 169 ; CHECK:const_addend_array2: | 175 ; CHECK:const_addend_array2: |
| 170 ; CHECK: .long bytes + 7 | 176 ; CHECK: .long bytes + 7 |
| 171 ; CHECK: .size const_addend_array2, 4 | 177 ; CHECK: .size const_addend_array2, 4 |
| 172 | 178 |
| 173 @addend_array3 = internal global i32 add (i32 ptrtoint ([7 x i8]* @bytes to i32)
, i32 9) | 179 @addend_array3 = internal global i32 add (i32 ptrtoint ([7 x i8]* @bytes to i32)
, i32 9) |
| 174 ; CHECK: @addend_array3 = internal global i32 add (i32 ptrtoint ([7 x i8]* @byte
s to i32), i32 9) | 180 ; DUMP: @addend_array3 = internal global i32 add (i32 ptrtoint ([7 x i8]* @bytes
to i32), i32 9) |
| 175 ; CHECK: .type addend_array3,@object | 181 ; CHECK: .type addend_array3,@object |
| 176 ; CHECK: .section .data,"aw",@progbits | 182 ; CHECK: .section .data,"aw",@progbits |
| 177 ; CHECK:addend_array3: | 183 ; CHECK:addend_array3: |
| 178 ; CHECK: .long bytes + 9 | 184 ; CHECK: .long bytes + 9 |
| 179 ; CHECK: .size addend_array3, 4 | 185 ; CHECK: .size addend_array3, 4 |
| 180 | 186 |
| 181 @const_addend_array3 = internal constant i32 add (i32 ptrtoint ([7 x i8]* @bytes
to i32), i32 9) | 187 @const_addend_array3 = internal constant i32 add (i32 ptrtoint ([7 x i8]* @bytes
to i32), i32 9) |
| 182 ; CHECK: @const_addend_array3 = internal constant i32 add (i32 ptrtoint ([7 x i8
]* @bytes to i32), i32 9) | 188 ; DUMP: @const_addend_array3 = internal constant i32 add (i32 ptrtoint ([7 x i8]
* @bytes to i32), i32 9) |
| 183 ; CHECK: .type const_addend_array3,@object | 189 ; CHECK: .type const_addend_array3,@object |
| 184 ; CHECK: .section .rodata,"a",@progbits | 190 ; CHECK: .section .rodata,"a",@progbits |
| 185 ; CHECK:const_addend_array3: | 191 ; CHECK:const_addend_array3: |
| 186 ; CHECK: .long bytes + 9 | 192 ; CHECK: .long bytes + 9 |
| 187 ; CHECK: .size const_addend_array3, 4 | 193 ; CHECK: .size const_addend_array3, 4 |
| 188 | 194 |
| 189 @addend_struct1 = internal global i32 add (i32 ptrtoint (<{ [3 x i8], i32 }>* @c
ompound to i32), i32 1) | 195 @addend_struct1 = internal global i32 add (i32 ptrtoint (<{ [3 x i8], i32 }>* @c
ompound to i32), i32 1) |
| 190 ; CHECK: @addend_struct1 = internal global i32 add (i32 ptrtoint (<{ [3 x i8], i
32 }>* @compound to i32), i32 1) | 196 ; DUMP: @addend_struct1 = internal global i32 add (i32 ptrtoint (<{ [3 x i8], i3
2 }>* @compound to i32), i32 1) |
| 191 ; CHECK: .type addend_struct1,@object | 197 ; CHECK: .type addend_struct1,@object |
| 192 ; CHECK: .section .data,"aw",@progbits | 198 ; CHECK: .section .data,"aw",@progbits |
| 193 ; CHECK:addend_struct1: | 199 ; CHECK:addend_struct1: |
| 194 ; CHECK: .long compound + 1 | 200 ; CHECK: .long compound + 1 |
| 195 ; CHECK: .size addend_struct1, 4 | 201 ; CHECK: .size addend_struct1, 4 |
| 196 | 202 |
| 197 @const_addend_struct1 = internal constant i32 add (i32 ptrtoint (<{ [3 x i8], i3
2 }>* @compound to i32), i32 1) | 203 @const_addend_struct1 = internal constant i32 add (i32 ptrtoint (<{ [3 x i8], i3
2 }>* @compound to i32), i32 1) |
| 198 ; CHECK: @const_addend_struct1 = internal constant i32 add (i32 ptrtoint (<{ [3
x i8], i32 }>* @compound to i32), i32 1) | 204 ; DUMP: @const_addend_struct1 = internal constant i32 add (i32 ptrtoint (<{ [3 x
i8], i32 }>* @compound to i32), i32 1) |
| 199 ; CHECK: .type const_addend_struct1,@object | 205 ; CHECK: .type const_addend_struct1,@object |
| 200 ; CHECK: .section .rodata,"a",@progbits | 206 ; CHECK: .section .rodata,"a",@progbits |
| 201 ; CHECK:const_addend_struct1: | 207 ; CHECK:const_addend_struct1: |
| 202 ; CHECK: .long compound + 1 | 208 ; CHECK: .long compound + 1 |
| 203 ; CHECK: .size const_addend_struct1, 4 | 209 ; CHECK: .size const_addend_struct1, 4 |
| 204 | 210 |
| 205 @addend_struct2 = internal global i32 add (i32 ptrtoint (<{ [3 x i8], i32 }>* @c
ompound to i32), i32 4) | 211 @addend_struct2 = internal global i32 add (i32 ptrtoint (<{ [3 x i8], i32 }>* @c
ompound to i32), i32 4) |
| 206 ; CHECK: @addend_struct2 = internal global i32 add (i32 ptrtoint (<{ [3 x i8], i
32 }>* @compound to i32), i32 4) | 212 ; DUMP: @addend_struct2 = internal global i32 add (i32 ptrtoint (<{ [3 x i8], i3
2 }>* @compound to i32), i32 4) |
| 207 ; CHECK: .type addend_struct2,@object | 213 ; CHECK: .type addend_struct2,@object |
| 208 ; CHECK: .section .data,"aw",@progbits | 214 ; CHECK: .section .data,"aw",@progbits |
| 209 ; CHECK:addend_struct2: | 215 ; CHECK:addend_struct2: |
| 210 ; CHECK: .long compound + 4 | 216 ; CHECK: .long compound + 4 |
| 211 ; CHECK: .size addend_struct2, 4 | 217 ; CHECK: .size addend_struct2, 4 |
| 212 | 218 |
| 213 @const_addend_struct2 = internal constant i32 add (i32 ptrtoint (<{ [3 x i8], i3
2 }>* @compound to i32), i32 4) | 219 @const_addend_struct2 = internal constant i32 add (i32 ptrtoint (<{ [3 x i8], i3
2 }>* @compound to i32), i32 4) |
| 214 ; CHECK: @const_addend_struct2 = internal constant i32 add (i32 ptrtoint (<{ [3
x i8], i32 }>* @compound to i32), i32 4) | 220 ; DUMP: @const_addend_struct2 = internal constant i32 add (i32 ptrtoint (<{ [3 x
i8], i32 }>* @compound to i32), i32 4) |
| 215 ; CHECK: .type const_addend_struct2,@object | 221 ; CHECK: .type const_addend_struct2,@object |
| 216 ; CHECK: .section .rodata,"a",@progbits | 222 ; CHECK: .section .rodata,"a",@progbits |
| 217 ; CHECK:const_addend_struct2: | 223 ; CHECK:const_addend_struct2: |
| 218 ; CHECK: .long compound + 4 | 224 ; CHECK: .long compound + 4 |
| 219 ; CHECK: .size const_addend_struct2, 4 | 225 ; CHECK: .size const_addend_struct2, 4 |
| 220 | 226 |
| 221 @ptr_to_func_align = internal global i32 ptrtoint (void ()* @func to i32), align
8 | 227 @ptr_to_func_align = internal global i32 ptrtoint (void ()* @func to i32), align
8 |
| 222 ; CHECK: @ptr_to_func_align = internal global i32 ptrtoint (void ()* @func to i3
2), align 8 | 228 ; DUMP: @ptr_to_func_align = internal global i32 ptrtoint (void ()* @func to i32
), align 8 |
| 223 ; CHECK: .type ptr_to_func_align,@object | 229 ; CHECK: .type ptr_to_func_align,@object |
| 224 ; CHECK: .section .data,"aw",@progbits | 230 ; CHECK: .section .data,"aw",@progbits |
| 225 ; CHECK: .align 8 | 231 ; CHECK: .align 8 |
| 226 ; CHECK:ptr_to_func_align: | 232 ; CHECK:ptr_to_func_align: |
| 227 ; CHECK: .long func | 233 ; CHECK: .long func |
| 228 ; CHECK: .size ptr_to_func_align, 4 | 234 ; CHECK: .size ptr_to_func_align, 4 |
| 229 | 235 |
| 230 @const_ptr_to_func_align = internal constant i32 ptrtoint (void ()* @func to i32
), align 8 | 236 @const_ptr_to_func_align = internal constant i32 ptrtoint (void ()* @func to i32
), align 8 |
| 231 ; CHECK: @const_ptr_to_func_align = internal constant i32 ptrtoint (void ()* @fu
nc to i32), align 8 | 237 ; DUMP: @const_ptr_to_func_align = internal constant i32 ptrtoint (void ()* @fun
c to i32), align 8 |
| 232 ; CHECK: .type const_ptr_to_func_align,@object | 238 ; CHECK: .type const_ptr_to_func_align,@object |
| 233 ; CHECK: .section .rodata,"a",@progbits | 239 ; CHECK: .section .rodata,"a",@progbits |
| 234 ; CHECK: .align 8 | 240 ; CHECK: .align 8 |
| 235 ; CHECK:const_ptr_to_func_align: | 241 ; CHECK:const_ptr_to_func_align: |
| 236 ; CHECK: .long func | 242 ; CHECK: .long func |
| 237 ; CHECK: .size const_ptr_to_func_align, 4 | 243 ; CHECK: .size const_ptr_to_func_align, 4 |
| 238 | 244 |
| 239 @char = internal constant [1 x i8] c"0" | 245 @char = internal constant [1 x i8] c"0" |
| 240 ; CHECK: @char = internal constant [1 x i8] c"0" | 246 ; DUMP: @char = internal constant [1 x i8] c"0" |
| 241 ; CHECK: .type char,@object | 247 ; CHECK: .type char,@object |
| 242 ; CHECK: .section .rodata,"a",@progbits | 248 ; CHECK: .section .rodata,"a",@progbits |
| 243 ; CHECK:char: | 249 ; CHECK:char: |
| 244 ; CHECK: .byte 48 | 250 ; CHECK: .byte 48 |
| 245 ; CHECK: .size char, 1 | 251 ; CHECK: .size char, 1 |
| 246 | 252 |
| 247 @short = internal constant [2 x i8] zeroinitializer | 253 @short = internal constant [2 x i8] zeroinitializer |
| 248 ; CHECK: @short = internal constant [2 x i8] zeroinitializer | 254 ; DUMP: @short = internal constant [2 x i8] zeroinitializer |
| 249 ; CHECK: .type short,@object | 255 ; CHECK: .type short,@object |
| 250 ; CHECK: .section .rodata,"a",@progbits | 256 ; CHECK: .section .rodata,"a",@progbits |
| 251 ; CHECK:short: | 257 ; CHECK:short: |
| 252 ; CHECK: .zero 2 | 258 ; CHECK: .zero 2 |
| 253 ; CHECK: .size short, 2 | 259 ; CHECK: .size short, 2 |
| 254 | 260 |
| 255 define void @func() { | 261 define void @func() { |
| 256 ret void | 262 ret void |
| 257 } | 263 } |
| 258 | 264 |
| 259 ; CHECK: define void @func() { | 265 ; CHECK: define void @func() { |
| 260 | 266 |
| OLD | NEW |