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