brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 0c220d9 Raw
42 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 42; RUN: opt -o - -S %s -passes=instcombine | FileCheck %s3 4@tlsvar_a4 = thread_local global i32 4, align 45 6define void @func_increase_alignment() {7; CHECK-LABEL: define void @func_increase_alignment() {8; CHECK-NEXT:    [[P:%.*]] = call align 4 ptr @llvm.threadlocal.address.p0(ptr @tlsvar_a4)9; CHECK-NEXT:    store i32 42, ptr [[P]], align 210; CHECK-NEXT:    ret void11;12  %p = call align 2 ptr @llvm.threadlocal.address(ptr @tlsvar_a4)13  store i32 42, ptr %p, align 214  ret void15}16 17@tlsvar_a32 = thread_local global i32 5, align 3218 19define i1 @func_add_alignment() {20; CHECK-LABEL: define i1 @func_add_alignment() {21; CHECK-NEXT:    ret i1 true22;23  %p = call ptr @llvm.threadlocal.address(ptr @tlsvar_a32)24  %p_int = ptrtoint ptr %p to i3225  %lowbits = and i32 %p_int, 3126  %zero = icmp eq i32 %lowbits, 027  ret i1 %zero28}29 30@tlsvar_a1 = thread_local global i8 6, align 131 32define i1 @func_dont_reduce_alignment() {33; CHECK-LABEL: define i1 @func_dont_reduce_alignment() {34; CHECK-NEXT:    ret i1 true35;36  %p = call align 4 ptr @llvm.threadlocal.address(ptr @tlsvar_a1)37  %p_int = ptrtoint ptr %p to i3238  %lowbits = and i32 %p_int, 339  %zero = icmp eq i32 %lowbits, 040  ret i1 %zero41}42