; RUN: opt -passes=alignment-from-assumptions -S < %s | FileCheck %s
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%type1 = type { %type2 }
%type2 = type { [4 x i8] }

; Function Attrs: nounwind
declare void @llvm.assume(i1) #0

; Function Attrs: nounwind readnone
declare i32 @llvm.bswap.i32(i32) #1

; Function Attrs: nounwind uwtable
define void @test1() unnamed_addr #2 align 2 {

; CHECK-LABEL: @test1

entry:
  br i1 undef, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  unreachable

if.end:                                           ; preds = %entry
  br i1 undef, label %return, label %if.end8

if.end8:                                          ; preds = %if.end
  br i1 undef, label %if.then13, label %if.end14

if.then13:                                        ; preds = %if.end8
  unreachable

if.end14:                                         ; preds = %if.end8
  br i1 undef, label %cond.false.i129, label %cond.end.i136

cond.false.i129:                                  ; preds = %if.end14
  unreachable

cond.end.i136:                                    ; preds = %if.end14
  br i1 undef, label %land.lhs.true.i, label %if.end.i145

land.lhs.true.i:                                  ; preds = %cond.end.i136
  br i1 undef, label %if.end.i145, label %if.then.i137

if.then.i137:                                     ; preds = %land.lhs.true.i
  br i1 undef, label %cond.false8.i, label %cond.end9.i

cond.false8.i:                                    ; preds = %if.then.i137
  unreachable

cond.end9.i:                                      ; preds = %if.then.i137
  br i1 undef, label %if.then23, label %if.end24

if.end.i145:                                      ; preds = %land.lhs.true.i, %cond.end.i136
  unreachable

if.then23:                                        ; preds = %cond.end9.i
  unreachable

if.end24:                                         ; preds = %cond.end9.i
  br i1 undef, label %for.end, label %for.body.lr.ph

for.body.lr.ph:                                   ; preds = %if.end24
  unreachable

for.end:                                          ; preds = %if.end24
  br i1 undef, label %if.end123, label %if.then121

if.then121:                                       ; preds = %for.end
  unreachable

if.end123:                                        ; preds = %for.end
  br i1 undef, label %if.end150, label %if.then126

if.then126:                                       ; preds = %if.end123
  %ptrint.i.i185 = ptrtoint %type1* undef to i64
  %maskedptr.i.i186 = and i64 %ptrint.i.i185, 1
  %maskcond.i.i187 = icmp eq i64 %maskedptr.i.i186, 0
  tail call void @llvm.assume(i1 %maskcond.i.i187) #0
  %ret.0..sroa_cast.i.i188 = bitcast %type1* undef to i32*
  %ret.0.copyload.i.i189 = load i32, i32* %ret.0..sroa_cast.i.i188, align 2

; CHECK: load {{.*}} align 2

  %0 = tail call i32 @llvm.bswap.i32(i32 %ret.0.copyload.i.i189) #0
  %conv131 = zext i32 %0 to i64
  %add.ptr132 = getelementptr inbounds i8, i8* undef, i64 %conv131
  %1 = bitcast i8* %add.ptr132 to %type1*
  br i1 undef, label %if.end150, label %if.end.i173

if.end.i173:                                      ; preds = %if.then126
  br i1 undef, label %test1.exit, label %cond.false.i.i.i.i174

cond.false.i.i.i.i174:                            ; preds = %if.end.i173
  unreachable

test1.exit: ; preds = %if.end.i173
  br i1 undef, label %test1a.exit, label %if.end.i124

if.end.i124:                                      ; preds = %test1.exit
  unreachable

test1a.exit: ; preds = %test1.exit
  br i1 undef, label %if.end150, label %for.body137.lr.ph

for.body137.lr.ph:                                ; preds = %test1a.exit
  br label %for.body137

for.body137:                                      ; preds = %test1b.exit, %for.body137.lr.ph
  %ShndxTable.0309 = phi %type1* [ %1, %for.body137.lr.ph ], [ %incdec.ptr, %test1b.exit ]
  %ret.0..sroa_cast.i.i106 = bitcast %type1* %ShndxTable.0309 to i32*
  br i1 undef, label %for.body137.if.end146_crit_edge, label %if.then140

for.body137.if.end146_crit_edge:                  ; preds = %for.body137
  %incdec.ptr = getelementptr inbounds %type1, %type1* %ShndxTable.0309, i64 1
  br i1 undef, label %cond.false.i70, label %cond.end.i

if.then140:                                       ; preds = %for.body137
  %ret.0.copyload.i.i102 = load i32, i32* %ret.0..sroa_cast.i.i106, align 2

; CHECK: load {{.*}} align 2

  unreachable

cond.false.i70:                                   ; preds = %for.body137.if.end146_crit_edge
  unreachable

cond.end.i:                                       ; preds = %for.body137.if.end146_crit_edge
  br i1 undef, label %test1b.exit, label %cond.false.i.i

cond.false.i.i:                                   ; preds = %cond.end.i
  unreachable

test1b.exit: ; preds = %cond.end.i
  br i1 undef, label %if.end150, label %for.body137

if.end150:                                        ; preds = %test1b.exit, %test1a.exit, %if.then126, %if.end123
  br i1 undef, label %for.end176, label %for.body155.lr.ph

for.body155.lr.ph:                                ; preds = %if.end150
  unreachable

for.end176:                                       ; preds = %if.end150
  unreachable

return:                                           ; preds = %if.end
  ret void
}

attributes #0 = { nounwind }
attributes #1 = { nounwind readnone }
attributes #2 = { nounwind uwtable }

