| OLD | NEW |
| 1 ; Simple test of signed and unsigned integer conversions. | 1 ; Simple test of signed and unsigned integer conversions. |
| 2 | 2 |
| 3 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 3 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
| 4 ; RUN: --target x8632 -i %s --args -O2 \ | 4 ; RUN: --target x8632 -i %s --args -O2 \ |
| 5 ; RUN: | %if --need=target_X8632 --command FileCheck %s | 5 ; RUN: | %if --need=target_X8632 --command FileCheck %s |
| 6 | 6 |
| 7 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ | 7 ; RUN: %if --need=target_X8632 --command %p2i --filetype=obj --disassemble \ |
| 8 ; RUN: --target x8632 -i %s --args -Om1 \ | 8 ; RUN: --target x8632 -i %s --args -Om1 \ |
| 9 ; RUN: | %if --need=target_X8632 --command FileCheck %s | 9 ; RUN: | %if --need=target_X8632 --command FileCheck %s |
| 10 | 10 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 store i16 %v1, i16* %__3, align 1 | 41 store i16 %v1, i16* %__3, align 1 |
| 42 %v2 = sext i8 %v0 to i32 | 42 %v2 = sext i8 %v0 to i32 |
| 43 %__5 = bitcast [4 x i8]* @i32v to i32* | 43 %__5 = bitcast [4 x i8]* @i32v to i32* |
| 44 store i32 %v2, i32* %__5, align 1 | 44 store i32 %v2, i32* %__5, align 1 |
| 45 %v3 = sext i8 %v0 to i64 | 45 %v3 = sext i8 %v0 to i64 |
| 46 %__7 = bitcast [8 x i8]* @i64v to i64* | 46 %__7 = bitcast [8 x i8]* @i64v to i64* |
| 47 store i64 %v3, i64* %__7, align 1 | 47 store i64 %v3, i64* %__7, align 1 |
| 48 ret void | 48 ret void |
| 49 } | 49 } |
| 50 ; CHECK-LABEL: from_int8 | 50 ; CHECK-LABEL: from_int8 |
| 51 ; CHECK: mov {{.*}},BYTE PTR | 51 ; CHECK: mov {{.*}},{{(BYTE PTR)?}} |
| 52 ; CHECK: movsx e{{.*}},{{[a-d]l|BYTE PTR}} | 52 ; CHECK: movsx {{.*}},{{[a-d]l|BYTE PTR}} |
| 53 ; CHECK: mov WORD PTR | 53 ; CHECK: mov {{(WORD PTR)?}} |
| 54 ; CHECK: movsx | 54 ; CHECK: movsx |
| 55 ; CHECK: mov DWORD PTR | 55 ; CHECK: mov {{(DWORD PTR)?}} |
| 56 ; CHECK: movsx | 56 ; CHECK: movsx |
| 57 ; CHECK: sar {{.*}},0x1f | 57 ; CHECK: sar {{.*}},0x1f |
| 58 ; CHECK-DAG: ds:0x0,{{.*}}i64v | 58 ; CHECK-DAG: ds:0x{{.}},{{.*}}{{(i64v)|(.bss)}} |
| 59 ; CHECK-DAG: ds:0x4,{{.*}}i64v | 59 ; CHECK-DAG: ds:0x{{.}},{{.*}}{{(i64v)|(.bss)}} |
| 60 | 60 |
| 61 ; ARM32-LABEL: from_int8 | 61 ; ARM32-LABEL: from_int8 |
| 62 ; ARM32: movw {{.*}}i8v | 62 ; ARM32: movw {{.*}}i8v |
| 63 ; ARM32: ldrb | 63 ; ARM32: ldrb |
| 64 ; ARM32: sxtb | 64 ; ARM32: sxtb |
| 65 ; ARM32: movw {{.*}}i16v | 65 ; ARM32: movw {{.*}}i16v |
| 66 ; ARM32: strh | 66 ; ARM32: strh |
| 67 ; ARM32: sxtb | 67 ; ARM32: sxtb |
| 68 ; ARM32: movw {{.*}}i32v | 68 ; ARM32: movw {{.*}}i32v |
| 69 ; ARM32: str r | 69 ; ARM32: str r |
| (...skipping 12 matching lines...) Expand all Loading... |
| 82 store i8 %v1, i8* %__3, align 1 | 82 store i8 %v1, i8* %__3, align 1 |
| 83 %v2 = sext i16 %v0 to i32 | 83 %v2 = sext i16 %v0 to i32 |
| 84 %__5 = bitcast [4 x i8]* @i32v to i32* | 84 %__5 = bitcast [4 x i8]* @i32v to i32* |
| 85 store i32 %v2, i32* %__5, align 1 | 85 store i32 %v2, i32* %__5, align 1 |
| 86 %v3 = sext i16 %v0 to i64 | 86 %v3 = sext i16 %v0 to i64 |
| 87 %__7 = bitcast [8 x i8]* @i64v to i64* | 87 %__7 = bitcast [8 x i8]* @i64v to i64* |
| 88 store i64 %v3, i64* %__7, align 1 | 88 store i64 %v3, i64* %__7, align 1 |
| 89 ret void | 89 ret void |
| 90 } | 90 } |
| 91 ; CHECK-LABEL: from_int16 | 91 ; CHECK-LABEL: from_int16 |
| 92 ; CHECK: mov {{.*}},WORD PTR | 92 ; CHECK: mov {{.*}},{{(WORD PTR)?}} |
| 93 ; CHECK: 0x0 {{.*}}i16v | 93 ; CHECK: 0x{{.}} {{.*}}{{(i16v)|(.bss)}} |
| 94 ; CHECK: movsx e{{.*}},{{.*x|[ds]i|bp|WORD PTR}} | 94 ; CHECK: movsx e{{.*}},{{.*x|[ds]i|bp|WORD PTR}} |
| 95 ; CHECK: 0x0,{{.*}}i32v | 95 ; CHECK: 0x{{.}},{{.*}}{{(i32v)|(.bss)}} |
| 96 ; CHECK: movsx e{{.*}},{{.*x|[ds]i|bp|WORD PTR}} | 96 ; CHECK: movsx e{{.*}},{{.*x|[ds]i|bp|WORD PTR}} |
| 97 ; CHECK: sar {{.*}},0x1f | 97 ; CHECK: sar {{.*}},0x1f |
| 98 ; CHECK: 0x0,{{.*}}i64v | 98 ; CHECK: 0x{{.}},{{.*}}{{(i64v)|(.bss)}} |
| 99 | 99 |
| 100 ; ARM32-LABEL: from_int16 | 100 ; ARM32-LABEL: from_int16 |
| 101 ; ARM32: movw {{.*}}i16v | 101 ; ARM32: movw {{.*}}i16v |
| 102 ; ARM32: ldrh | 102 ; ARM32: ldrh |
| 103 ; ARM32: movw {{.*}}i8v | 103 ; ARM32: movw {{.*}}i8v |
| 104 ; ARM32: strb | 104 ; ARM32: strb |
| 105 ; ARM32: sxth | 105 ; ARM32: sxth |
| 106 ; ARM32: movw {{.*}}i32v | 106 ; ARM32: movw {{.*}}i32v |
| 107 ; ARM32: str r | 107 ; ARM32: str r |
| 108 ; ARM32: sxth | 108 ; ARM32: sxth |
| (...skipping 10 matching lines...) Expand all Loading... |
| 119 store i8 %v1, i8* %__3, align 1 | 119 store i8 %v1, i8* %__3, align 1 |
| 120 %v2 = trunc i32 %v0 to i16 | 120 %v2 = trunc i32 %v0 to i16 |
| 121 %__5 = bitcast [2 x i8]* @i16v to i16* | 121 %__5 = bitcast [2 x i8]* @i16v to i16* |
| 122 store i16 %v2, i16* %__5, align 1 | 122 store i16 %v2, i16* %__5, align 1 |
| 123 %v3 = sext i32 %v0 to i64 | 123 %v3 = sext i32 %v0 to i64 |
| 124 %__7 = bitcast [8 x i8]* @i64v to i64* | 124 %__7 = bitcast [8 x i8]* @i64v to i64* |
| 125 store i64 %v3, i64* %__7, align 1 | 125 store i64 %v3, i64* %__7, align 1 |
| 126 ret void | 126 ret void |
| 127 } | 127 } |
| 128 ; CHECK-LABEL: from_int32 | 128 ; CHECK-LABEL: from_int32 |
| 129 ; CHECK: 0x0 {{.*}} i32v | 129 ; CHECK: 0x{{.}} {{.*}} {{(i32v)|(.bss)}} |
| 130 ; CHECK: 0x0,{{.*}} i8v | 130 ; CHECK: 0x{{.}},{{.*}} {{(i8v)|(.bss)}} |
| 131 ; CHECK: 0x0,{{.*}} i16v | 131 ; CHECK: 0x{{.}},{{.*}} {{(i16v)|(.bss)}} |
| 132 ; CHECK: sar {{.*}},0x1f | 132 ; CHECK: sar {{.*}},0x1f |
| 133 ; CHECK: 0x0,{{.*}} i64v | 133 ; CHECK: 0x{{.}},{{.*}} {{(i64v)|(.bss)}} |
| 134 | 134 |
| 135 ; ARM32-LABEL: from_int32 | 135 ; ARM32-LABEL: from_int32 |
| 136 ; ARM32: movw {{.*}}i32v | 136 ; ARM32: movw {{.*}}i32v |
| 137 ; ARM32: ldr r | 137 ; ARM32: ldr r |
| 138 ; ARM32: movw {{.*}}i8v | 138 ; ARM32: movw {{.*}}i8v |
| 139 ; ARM32: strb | 139 ; ARM32: strb |
| 140 ; ARM32: movw {{.*}}i16v | 140 ; ARM32: movw {{.*}}i16v |
| 141 ; ARM32: strh | 141 ; ARM32: strh |
| 142 ; ARM32: asr | 142 ; ARM32: asr |
| 143 ; ARM32: movw {{.*}}i64v | 143 ; ARM32: movw {{.*}}i64v |
| 144 ; ARM32: str r | 144 ; ARM32: str r |
| 145 | 145 |
| 146 define internal void @from_int64() { | 146 define internal void @from_int64() { |
| 147 entry: | 147 entry: |
| 148 %__0 = bitcast [8 x i8]* @i64v to i64* | 148 %__0 = bitcast [8 x i8]* @i64v to i64* |
| 149 %v0 = load i64, i64* %__0, align 1 | 149 %v0 = load i64, i64* %__0, align 1 |
| 150 %v1 = trunc i64 %v0 to i8 | 150 %v1 = trunc i64 %v0 to i8 |
| 151 %__3 = bitcast [1 x i8]* @i8v to i8* | 151 %__3 = bitcast [1 x i8]* @i8v to i8* |
| 152 store i8 %v1, i8* %__3, align 1 | 152 store i8 %v1, i8* %__3, align 1 |
| 153 %v2 = trunc i64 %v0 to i16 | 153 %v2 = trunc i64 %v0 to i16 |
| 154 %__5 = bitcast [2 x i8]* @i16v to i16* | 154 %__5 = bitcast [2 x i8]* @i16v to i16* |
| 155 store i16 %v2, i16* %__5, align 1 | 155 store i16 %v2, i16* %__5, align 1 |
| 156 %v3 = trunc i64 %v0 to i32 | 156 %v3 = trunc i64 %v0 to i32 |
| 157 %__7 = bitcast [4 x i8]* @i32v to i32* | 157 %__7 = bitcast [4 x i8]* @i32v to i32* |
| 158 store i32 %v3, i32* %__7, align 1 | 158 store i32 %v3, i32* %__7, align 1 |
| 159 ret void | 159 ret void |
| 160 } | 160 } |
| 161 ; CHECK-LABEL: from_int64 | 161 ; CHECK-LABEL: from_int64 |
| 162 ; CHECK: 0x0 {{.*}} i64v | 162 ; CHECK: 0x{{.}} {{.*}} {{(i64v)|(.bss)}} |
| 163 ; CHECK: 0x0,{{.*}} i8v | 163 ; CHECK: 0x{{.}},{{.*}} {{(i8v)|(.bss)}} |
| 164 ; CHECK: 0x0,{{.*}} i16v | 164 ; CHECK: 0x{{.}},{{.*}} {{(i16v)|(.bss)}} |
| 165 ; CHECK: 0x0,{{.*}} i32v | 165 ; CHECK: 0x{{.}},{{.*}} {{(i32v)|(.bss)}} |
| 166 | 166 |
| 167 ; ARM32-LABEL: from_int64 | 167 ; ARM32-LABEL: from_int64 |
| 168 ; ARM32: movw {{.*}}i64v | 168 ; ARM32: movw {{.*}}i64v |
| 169 ; ARM32: ldr r | 169 ; ARM32: ldr r |
| 170 ; ARM32: movw {{.*}}i8v | 170 ; ARM32: movw {{.*}}i8v |
| 171 ; ARM32: strb | 171 ; ARM32: strb |
| 172 ; ARM32: movw {{.*}}i16v | 172 ; ARM32: movw {{.*}}i16v |
| 173 ; ARM32: strh | 173 ; ARM32: strh |
| 174 ; ARM32: movw {{.*}}i32v | 174 ; ARM32: movw {{.*}}i32v |
| 175 ; ARM32: str r | 175 ; ARM32: str r |
| 176 | 176 |
| 177 define internal void @from_uint8() { | 177 define internal void @from_uint8() { |
| 178 entry: | 178 entry: |
| 179 %__0 = bitcast [1 x i8]* @u8v to i8* | 179 %__0 = bitcast [1 x i8]* @u8v to i8* |
| 180 %v0 = load i8, i8* %__0, align 1 | 180 %v0 = load i8, i8* %__0, align 1 |
| 181 %v1 = zext i8 %v0 to i16 | 181 %v1 = zext i8 %v0 to i16 |
| 182 %__3 = bitcast [2 x i8]* @i16v to i16* | 182 %__3 = bitcast [2 x i8]* @i16v to i16* |
| 183 store i16 %v1, i16* %__3, align 1 | 183 store i16 %v1, i16* %__3, align 1 |
| 184 %v2 = zext i8 %v0 to i32 | 184 %v2 = zext i8 %v0 to i32 |
| 185 %__5 = bitcast [4 x i8]* @i32v to i32* | 185 %__5 = bitcast [4 x i8]* @i32v to i32* |
| 186 store i32 %v2, i32* %__5, align 1 | 186 store i32 %v2, i32* %__5, align 1 |
| 187 %v3 = zext i8 %v0 to i64 | 187 %v3 = zext i8 %v0 to i64 |
| 188 %__7 = bitcast [8 x i8]* @i64v to i64* | 188 %__7 = bitcast [8 x i8]* @i64v to i64* |
| 189 store i64 %v3, i64* %__7, align 1 | 189 store i64 %v3, i64* %__7, align 1 |
| 190 ret void | 190 ret void |
| 191 } | 191 } |
| 192 ; CHECK-LABEL: from_uint8 | 192 ; CHECK-LABEL: from_uint8 |
| 193 ; CHECK: 0x0 {{.*}} u8v | 193 ; CHECK: 0x{{.*}} {{.*}} {{(u8v)|(.bss)}} |
| 194 ; CHECK: movzx e{{.*}},{{[a-d]l|BYTE PTR}} | 194 ; CHECK: movzx {{.*}},{{[a-d]l|BYTE PTR}} |
| 195 ; CHECK: 0x0,{{.*}} i16v | 195 ; CHECK: 0x{{.}},{{.*}} {{(i16v)|(.bss)}} |
| 196 ; CHECK: movzx | 196 ; CHECK: movzx |
| 197 ; CHECK: 0x0,{{.*}} i32v | 197 ; CHECK: 0x{{.}},{{.*}} {{(i32v)|(.bss)}} |
| 198 ; CHECK: movzx | 198 ; CHECK: movzx |
| 199 ; CHECK: mov {{.*}},0x0 | 199 ; CHECK: mov {{.*}},0x0 |
| 200 ; CHECK: 0x0,{{.*}} i64v | 200 ; CHECK: 0x{{.}},{{.*}} {{(i64v)|(.bss)}} |
| 201 | 201 |
| 202 ; ARM32-LABEL: from_uint8 | 202 ; ARM32-LABEL: from_uint8 |
| 203 ; ARM32: movw {{.*}}u8v | 203 ; ARM32: movw {{.*}}u8v |
| 204 ; ARM32: ldrb | 204 ; ARM32: ldrb |
| 205 ; ARM32: uxtb | 205 ; ARM32: uxtb |
| 206 ; ARM32: movw {{.*}}i16v | 206 ; ARM32: movw {{.*}}i16v |
| 207 ; ARM32: strh | 207 ; ARM32: strh |
| 208 ; ARM32: uxtb | 208 ; ARM32: uxtb |
| 209 ; ARM32: movw {{.*}}i32v | 209 ; ARM32: movw {{.*}}i32v |
| 210 ; ARM32: str r | 210 ; ARM32: str r |
| (...skipping 11 matching lines...) Expand all Loading... |
| 222 store i8 %v1, i8* %__3, align 1 | 222 store i8 %v1, i8* %__3, align 1 |
| 223 %v2 = zext i16 %v0 to i32 | 223 %v2 = zext i16 %v0 to i32 |
| 224 %__5 = bitcast [4 x i8]* @i32v to i32* | 224 %__5 = bitcast [4 x i8]* @i32v to i32* |
| 225 store i32 %v2, i32* %__5, align 1 | 225 store i32 %v2, i32* %__5, align 1 |
| 226 %v3 = zext i16 %v0 to i64 | 226 %v3 = zext i16 %v0 to i64 |
| 227 %__7 = bitcast [8 x i8]* @i64v to i64* | 227 %__7 = bitcast [8 x i8]* @i64v to i64* |
| 228 store i64 %v3, i64* %__7, align 1 | 228 store i64 %v3, i64* %__7, align 1 |
| 229 ret void | 229 ret void |
| 230 } | 230 } |
| 231 ; CHECK-LABEL: from_uint16 | 231 ; CHECK-LABEL: from_uint16 |
| 232 ; CHECK: 0x0 {{.*}} u16v | 232 ; CHECK: 0x{{.*}} {{.*}} {{(u16v)|(.bss)}} |
| 233 ; CHECK: 0x0,{{.*}} i8v | 233 ; CHECK: 0x{{.}},{{.*}} {{(i8v)|(.bss)}} |
| 234 ; CHECK: movzx e{{.*}},{{.*x|[ds]i|bp|WORD PTR}} | 234 ; CHECK: movzx e{{.*}},{{.*x|[ds]i|bp|WORD PTR}} |
| 235 ; CHECK: 0x0,{{.*}} i32v | 235 ; CHECK: 0x{{.}},{{.*}} {{(i32v)|(.bss)}} |
| 236 ; CHECK: movzx e{{.*}},{{.*x|[ds]i|bp|WORD PTR}} | 236 ; CHECK: movzx e{{.*}},{{.*x|[ds]i|bp|WORD PTR}} |
| 237 ; CHECK: mov {{.*}},0x0 | 237 ; CHECK: mov {{.*}},0x0 |
| 238 ; CHECK: 0x0,{{.*}} i64v | 238 ; CHECK: 0x{{.}},{{.*}} {{(i64v)|(.bss)}} |
| 239 | 239 |
| 240 ; ARM32-LABEL: from_uint16 | 240 ; ARM32-LABEL: from_uint16 |
| 241 ; ARM32: movw {{.*}}u16v | 241 ; ARM32: movw {{.*}}u16v |
| 242 ; ARM32: ldrh | 242 ; ARM32: ldrh |
| 243 ; ARM32: movw {{.*}}i8v | 243 ; ARM32: movw {{.*}}i8v |
| 244 ; ARM32: strb | 244 ; ARM32: strb |
| 245 ; ARM32: uxth | 245 ; ARM32: uxth |
| 246 ; ARM32: movw {{.*}}i32v | 246 ; ARM32: movw {{.*}}i32v |
| 247 ; ARM32: str r | 247 ; ARM32: str r |
| 248 ; ARM32: uxth | 248 ; ARM32: uxth |
| (...skipping 10 matching lines...) Expand all Loading... |
| 259 store i8 %v1, i8* %__3, align 1 | 259 store i8 %v1, i8* %__3, align 1 |
| 260 %v2 = trunc i32 %v0 to i16 | 260 %v2 = trunc i32 %v0 to i16 |
| 261 %__5 = bitcast [2 x i8]* @i16v to i16* | 261 %__5 = bitcast [2 x i8]* @i16v to i16* |
| 262 store i16 %v2, i16* %__5, align 1 | 262 store i16 %v2, i16* %__5, align 1 |
| 263 %v3 = zext i32 %v0 to i64 | 263 %v3 = zext i32 %v0 to i64 |
| 264 %__7 = bitcast [8 x i8]* @i64v to i64* | 264 %__7 = bitcast [8 x i8]* @i64v to i64* |
| 265 store i64 %v3, i64* %__7, align 1 | 265 store i64 %v3, i64* %__7, align 1 |
| 266 ret void | 266 ret void |
| 267 } | 267 } |
| 268 ; CHECK-LABEL: from_uint32 | 268 ; CHECK-LABEL: from_uint32 |
| 269 ; CHECK: 0x0 {{.*}} u32v | 269 ; CHECK: 0x{{.*}} {{.*}} {{(u32v)|(.bss)}} |
| 270 ; CHECK: 0x0,{{.*}} i8v | 270 ; CHECK: 0x{{.}},{{.*}} {{(i8v)|(.bss)}} |
| 271 ; CHECK: 0x0,{{.*}} i16v | 271 ; CHECK: 0x{{.}},{{.*}} {{(i16v)|(.bss)}} |
| 272 ; CHECK: mov {{.*}},0x0 | 272 ; CHECK: mov {{.*}},0x0 |
| 273 ; CHECK: 0x0,{{.*}} i64v | 273 ; CHECK: 0x{{.}},{{.*}} {{(i64v)|(.bss)}} |
| 274 | 274 |
| 275 ; ARM32-LABEL: from_uint32 | 275 ; ARM32-LABEL: from_uint32 |
| 276 ; ARM32: movw {{.*}}u32v | 276 ; ARM32: movw {{.*}}u32v |
| 277 ; ARM32: ldr r | 277 ; ARM32: ldr r |
| 278 ; ARM32: movw {{.*}}i8v | 278 ; ARM32: movw {{.*}}i8v |
| 279 ; ARM32: strb | 279 ; ARM32: strb |
| 280 ; ARM32: movw {{.*}}i16v | 280 ; ARM32: movw {{.*}}i16v |
| 281 ; ARM32: strh | 281 ; ARM32: strh |
| 282 ; ARM32: mov {{.*}}, #0 | 282 ; ARM32: mov {{.*}}, #0 |
| 283 ; ARM32: movw {{.*}}i64v | 283 ; ARM32: movw {{.*}}i64v |
| 284 ; ARM32: str r | 284 ; ARM32: str r |
| 285 | 285 |
| 286 define internal void @from_uint64() { | 286 define internal void @from_uint64() { |
| 287 entry: | 287 entry: |
| 288 %__0 = bitcast [8 x i8]* @u64v to i64* | 288 %__0 = bitcast [8 x i8]* @u64v to i64* |
| 289 %v0 = load i64, i64* %__0, align 1 | 289 %v0 = load i64, i64* %__0, align 1 |
| 290 %v1 = trunc i64 %v0 to i8 | 290 %v1 = trunc i64 %v0 to i8 |
| 291 %__3 = bitcast [1 x i8]* @i8v to i8* | 291 %__3 = bitcast [1 x i8]* @i8v to i8* |
| 292 store i8 %v1, i8* %__3, align 1 | 292 store i8 %v1, i8* %__3, align 1 |
| 293 %v2 = trunc i64 %v0 to i16 | 293 %v2 = trunc i64 %v0 to i16 |
| 294 %__5 = bitcast [2 x i8]* @i16v to i16* | 294 %__5 = bitcast [2 x i8]* @i16v to i16* |
| 295 store i16 %v2, i16* %__5, align 1 | 295 store i16 %v2, i16* %__5, align 1 |
| 296 %v3 = trunc i64 %v0 to i32 | 296 %v3 = trunc i64 %v0 to i32 |
| 297 %__7 = bitcast [4 x i8]* @i32v to i32* | 297 %__7 = bitcast [4 x i8]* @i32v to i32* |
| 298 store i32 %v3, i32* %__7, align 1 | 298 store i32 %v3, i32* %__7, align 1 |
| 299 ret void | 299 ret void |
| 300 } | 300 } |
| 301 ; CHECK-LABEL: from_uint64 | 301 ; CHECK-LABEL: from_uint64 |
| 302 ; CHECK: 0x0 {{.*}} u64v | 302 ; CHECK: 0x{{.*}} {{.*}} {{(u64v)|(.bss)}} |
| 303 ; CHECK: 0x0,{{.*}} i8v | 303 ; CHECK: 0x{{.}},{{.*}} {{(i8v)|(.bss)}} |
| 304 ; CHECK: 0x0,{{.*}} i16v | 304 ; CHECK: 0x{{.}},{{.*}} {{(i16v)|(.bss)}} |
| 305 ; CHECK: 0x0,{{.*}} i32v | 305 ; CHECK: 0x{{.}},{{.*}} {{(i32v)|(.bss)}} |
| 306 | 306 |
| 307 ; ARM32-LABEL: from_uint64 | 307 ; ARM32-LABEL: from_uint64 |
| 308 ; ARM32: movw {{.*}}u64v | 308 ; ARM32: movw {{.*}}u64v |
| 309 ; ARM32: ldr r | 309 ; ARM32: ldr r |
| 310 ; ARM32: movw {{.*}}i8v | 310 ; ARM32: movw {{.*}}i8v |
| 311 ; ARM32: strb | 311 ; ARM32: strb |
| 312 ; ARM32: movw {{.*}}i16v | 312 ; ARM32: movw {{.*}}i16v |
| 313 ; ARM32: strh | 313 ; ARM32: strh |
| 314 ; ARM32: movw {{.*}}i32v | 314 ; ARM32: movw {{.*}}i32v |
| 315 ; ARM32: str r | 315 ; ARM32: str r |
| OLD | NEW |