blob: 9668bd75ce2990669f91b7ff0120e223db4a21bb [file]
; 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