; RUN: opt -basicaa -dse -S < %s | FileCheck %s
; PR11390
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

define fastcc void @cat_domain(i8* nocapture %name, i8* nocapture %domain, i8** 
nocapture %s) nounwind uwtable {
entry:
  %call = tail call i64 @strlen(i8* %name) nounwind readonly
  %call1 = tail call i64 @strlen(i8* %domain) nounwind readonly
  %add = add i64 %call, 1
  %add2 = add i64 %add, %call1
  %add3 = add i64 %add2, 1
  %call4 = tail call noalias i8* @malloc(i64 %add3) nounwind
  store i8* %call4, i8** %s, align 8
  %tobool = icmp eq i8* %call4, null
  br i1 %tobool, label %return, label %if.end

if.end:                                           ; preds = %entry
  tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call4, i8* %name, i64 %call, i32 1, i1 false)
  %arrayidx = getelementptr inbounds i8* %call4, i64 %call
  store i8 46, i8* %arrayidx, align 1
; CHECK: store i8 46
  %add.ptr5 = getelementptr inbounds i8* %call4, i64 %add
  tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %add.ptr5, i8* %domain, i64 %call1, i32 1, i1 false)
  %arrayidx8 = getelementptr inbounds i8* %call4, i64 %add2
  store i8 0, i8* %arrayidx8, align 1
  br label %return

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

declare i64 @strlen(i8* nocapture) nounwind readonly

declare noalias i8* @malloc(i64) nounwind

declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) nounwind
