; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s
%struct.S = type { i32}

@.str = private constant [10 x i8] c"ptr = %p\0A\00", align 1 ; <[10 x i8]*> [#uses=1]
@.str1 = private constant [8 x i8] c"Failed \00", align 1 ; <[8 x i8]*> [#uses=1]
@.str2 = private constant [2 x i8] c"0\00", align 1 ; <[2 x i8]*> [#uses=1]
@.str3 = private constant [7 x i8] c"test.c\00", align 1 ; <[7 x i8]*> [#uses=1]
@__PRETTY_FUNCTION__.2067 = internal constant [13 x i8] c"aligned_func\00" ; <[13 x i8]*> [#uses=1]

define void @aligned_func(%struct.S* byval(%struct.S) align 64 %obj) nounwind {
entry:
  %ptr = alloca i8*                               ; <i8**> [#uses=3]
  %p = alloca i64                                 ; <i64*> [#uses=3]
  %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
  %obj1 = bitcast %struct.S* %obj to i8*          ; <i8*> [#uses=1]
  store i8* %obj1, i8** %ptr, align 8
  %0 = load i8*, i8** %ptr, align 8                    ; <i8*> [#uses=1]
  %1 = ptrtoint i8* %0 to i64                     ; <i64> [#uses=1]
  store i64 %1, i64* %p, align 8
  %2 = load i8*, i8** %ptr, align 8                    ; <i8*> [#uses=1]
  %3 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), i8* %2) nounwind ; <i32> [#uses=0]
  %4 = load i64, i64* %p, align 8                      ; <i64> [#uses=1]
  %5 = and i64 %4, 140737488355264                ; <i64> [#uses=1]
  %6 = load i64, i64* %p, align 8                      ; <i64> [#uses=1]
  %7 = icmp ne i64 %5, %6                         ; <i1> [#uses=1]
  br i1 %7, label %bb, label %bb2

bb:                                               ; preds = %entry
  %8 = call i32 @puts(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str1, i64 0, i64 0)) nounwind ; <i32> [#uses=0]
  call void @__assert_fail(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str2, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str3, i64 0, i64 0), i32 18, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @__PRETTY_FUNCTION__.2067, i64 0, i64 0)) noreturn nounwind
  unreachable

bb2:                                              ; preds = %entry
  br label %return

return:                                           ; preds = %bb2
  ret void
}

declare i32 @printf(i8*, ...) nounwind

declare i32 @puts(i8*)

declare void @__assert_fail(i8*, i8*, i32, i8*) noreturn nounwind

define void @main() nounwind {
entry:
; CHECK: main
; CHECK: andq    $-64, %rsp
  %s1 = alloca %struct.S                          ; <%struct.S*> [#uses=4]
  %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
  %0 = getelementptr inbounds %struct.S, %struct.S* %s1, i32 0, i32 0 ; <i32*> [#uses=1]
  store i32 1, i32* %0, align 4
  call void @aligned_func(%struct.S* byval(%struct.S) align 64 %s1) nounwind
  br label %return

return:                                           ; preds = %entry
  ret void
}
