; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2 ; RUN: opt -passes=infer-alignment -S < %s | FileCheck %s ; <4 x i32> -> 16 byte alignment define void @alignment_sustain(ptr align 16 %ptr) { ; CHECK-LABEL: define void @alignment_sustain ; CHECK-SAME: (ptr align 16 [[PTR:%.*]]) { ; CHECK-NEXT: [[GEP:%.*]] = getelementptr , ptr [[PTR]], i32 3 ; CHECK-NEXT: [[LOAD:%.*]] = load <4 x i32>, ptr [[GEP]], align 16 ; CHECK-NEXT: store <4 x i32> zeroinitializer, ptr [[GEP]], align 16 ; CHECK-NEXT: ret void ; %gep = getelementptr , ptr %ptr, i32 3 %load = load <4 x i32>, ptr %gep, align 16 store <4 x i32> zeroinitializer, ptr %gep, align 16 ret void } ; <8 x i32> -> 32 byte alignment define void @alignment_increase(ptr align 32 %ptr) { ; CHECK-LABEL: define void @alignment_increase ; CHECK-SAME: (ptr align 32 [[PTR:%.*]]) { ; CHECK-NEXT: [[GEP:%.*]] = getelementptr , ptr [[PTR]], i32 3 ; CHECK-NEXT: [[LOAD:%.*]] = load <8 x i32>, ptr [[GEP]], align 32 ; CHECK-NEXT: store <8 x i32> zeroinitializer, ptr [[GEP]], align 32 ; CHECK-NEXT: ret void ; %gep = getelementptr , ptr %ptr, i32 3 %load = load <8 x i32>, ptr %gep, align 16 store <8 x i32> zeroinitializer, ptr %gep, align 16 ret void }