| ; RUN: llc -emulated-tls -mtriple=armv7-linux-android -relocation-model=pic < %s | FileCheck %s | |
| ; Test that emulated TLS uses preferred alignment for variables. | |
| ; This fixes a bug where emutls would use lower alignment than expected | |
| ; by the code generator, causing crashes with vectorized accesses. | |
| ; Fixes https://github.com/llvm/llvm-project/issues/167219 | |
| ; A 64-byte array should get 16-byte alignment (preferred for ARM NEON). | |
| @large_array = internal thread_local global [64 x i8] c"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" | |
| define ptr @get_large_array() { | |
| entry: | |
| ret ptr @large_array | |
| } | |
| ; CHECK-LABEL: __emutls_v.large_array: | |
| ; CHECK-NEXT: .long 64 | |
| ; CHECK-NEXT: .long 16 | |
| ; CHECK-NEXT: .long 0 | |
| ; CHECK-NEXT: .long __emutls_t.large_array |