; RUN: opt %loadPolly -polly-opt-isl -polly-reschedule=0 -polly-pragma-based-opts=1 -disable-output < %s 2>&1 | FileCheck %s --match-full-lines
;
; CHECK: warning: distribute_illegal.c:2:3: not applying loop fission/distribution: cannot ensure semantic equivalence due to possible dependency violations
;
; void foo(double *A,double *B) {
;   for (int i = 1; i < 128; ++i) {
;     A[i] = i;
;     B[i] = A[i+1];
;   }
; }

source_filename = "distribute_illegal.c"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

define dso_local void @foo(double* %A, double* %B) #0 !dbg !7 {
entry:
  call void @llvm.dbg.value(metadata double* %A, metadata !13, metadata !DIExpression()), !dbg !18
  call void @llvm.dbg.value(metadata double* %B, metadata !14, metadata !DIExpression()), !dbg !18
  call void @llvm.dbg.value(metadata i32 1, metadata !15, metadata !DIExpression()), !dbg !19
  br label %for.cond, !dbg !20

for.cond:
  %i.0 = phi i32 [ 1, %entry ], [ %inc, %for.body ], !dbg !19
  call void @llvm.dbg.value(metadata i32 %i.0, metadata !15, metadata !DIExpression()), !dbg !19
  %cmp = icmp slt i32 %i.0, 128, !dbg !21
  br i1 %cmp, label %for.body, label %for.end, !dbg !23

for.body:
  %conv = sitofp i32 %i.0 to double, !dbg !24
  %idxprom = sext i32 %i.0 to i64, !dbg !26
  %arrayidx = getelementptr inbounds double, double* %A, i64 %idxprom, !dbg !26
  store double %conv, double* %arrayidx, align 8, !dbg !27, !tbaa !28

  %add = add nsw i32 %i.0, 1, !dbg !32
  %idxprom1 = sext i32 %add to i64, !dbg !33
  %arrayidx2 = getelementptr inbounds double, double* %A, i64 %idxprom1, !dbg !33
  %0 = load double, double* %arrayidx2, align 8, !dbg !33, !tbaa !28
  %idxprom3 = sext i32 %i.0 to i64, !dbg !34
  %arrayidx4 = getelementptr inbounds double, double* %B, i64 %idxprom3, !dbg !34
  store double %0, double* %arrayidx4, align 8, !dbg !35, !tbaa !28

  %inc = add nsw i32 %i.0, 1, !dbg !36
  call void @llvm.dbg.value(metadata i32 %inc, metadata !15, metadata !DIExpression()), !dbg !19
  br label %for.cond, !dbg !37, !llvm.loop !38

for.end:
  ret void, !dbg !41
}

declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #2

declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #2

declare void @llvm.dbg.value(metadata, metadata, metadata) #1

attributes #0 = { nounwind uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nosync nounwind readnone speculatable willreturn }
attributes #2 = { argmemonly nofree nosync nounwind willreturn }

!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!2, !3, !4, !5}
!llvm.ident = !{!6}

!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 14.0.0 (/home/meinersbur/src/llvm-project/clang 81189783049d2b93f653c121d3731fd1732a3916)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, splitDebugInlining: false, nameTableKind: None)
!1 = !DIFile(filename: "distribute_illegal.c", directory: "/path/to")
!2 = !{i32 7, !"Dwarf Version", i32 4}
!3 = !{i32 2, !"Debug Info Version", i32 3}
!4 = !{i32 1, !"wchar_size", i32 4}
!5 = !{i32 7, !"uwtable", i32 1}
!6 = !{!"clang version 14.0.0 (/home/meinersbur/src/llvm-project/clang 81189783049d2b93f653c121d3731fd1732a3916)"}
!7 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 1, type: !8, scopeLine: 1, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !12)
!8 = !DISubroutineType(types: !9)
!9 = !{null, !10, !10}
!10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !11, size: 64)
!11 = !DIBasicType(name: "double", size: 64, encoding: DW_ATE_float)
!12 = !{!13, !14, !15}
!13 = !DILocalVariable(name: "A", arg: 1, scope: !7, file: !1, line: 1, type: !10)
!14 = !DILocalVariable(name: "B", arg: 2, scope: !7, file: !1, line: 1, type: !10)
!15 = !DILocalVariable(name: "i", scope: !16, file: !1, line: 2, type: !17)
!16 = distinct !DILexicalBlock(scope: !7, file: !1, line: 2, column: 3)
!17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
!18 = !DILocation(line: 0, scope: !7)
!19 = !DILocation(line: 0, scope: !16)
!20 = !DILocation(line: 2, column: 8, scope: !16)
!21 = !DILocation(line: 2, column: 21, scope: !22)
!22 = distinct !DILexicalBlock(scope: !16, file: !1, line: 2, column: 3)
!23 = !DILocation(line: 2, column: 3, scope: !16)
!24 = !DILocation(line: 3, column: 12, scope: !25)
!25 = distinct !DILexicalBlock(scope: !22, file: !1, line: 2, column: 33)
!26 = !DILocation(line: 3, column: 5, scope: !25)
!27 = !DILocation(line: 3, column: 10, scope: !25)
!28 = !{!29, !29, i64 0}
!29 = !{!"double", !30, i64 0}
!30 = !{!"omnipotent char", !31, i64 0}
!31 = !{!"Simple C/C++ TBAA"}
!32 = !DILocation(line: 4, column: 15, scope: !25)
!33 = !DILocation(line: 4, column: 12, scope: !25)
!34 = !DILocation(line: 4, column: 5, scope: !25)
!35 = !DILocation(line: 4, column: 10, scope: !25)
!36 = !DILocation(line: 2, column: 28, scope: !22)
!37 = !DILocation(line: 2, column: 3, scope: !22)
!38 = distinct !{!38, !23, !39, !40, !100}
!39 = !DILocation(line: 5, column: 3, scope: !16)
!40 = !{!"llvm.loop.mustprogress"}
!41 = !DILocation(line: 6, column: 1, scope: !7)
!100 = !{!"llvm.loop.distribute.enable"}
