Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks.ll
; RUN: opt -passes='require<scalar-evolution>,require<aa>,loop(print-access-info)' -disable-output < %s 2>&1 | FileCheck %s | ; RUN: opt -passes='require<scalar-evolution>,require<aa>,loop(print-access-info)' -disable-output < %s 2>&1 | FileCheck %s | ||||
; Analyze this loop: | ; Analyze this loop: | ||||
; for (i = 0; i < n; i++) | ; for (i = 0; i < n; i++) | ||||
; A[i + 1] = A[i] * B[i] * C[i]; | ; A[i + 1] = A[i] * B[i] * C[i]; | ||||
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" | target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" | ||||
target triple = "x86_64-apple-macosx10.10.0" | target triple = "x86_64-apple-macosx10.10.0" | ||||
; CHECK: Report: unsafe dependent memory operations in loop | ; CHECK: Report: unsafe dependent memory operations in loop | ||||
; CHECK-NEXT: Backward loop carried data dependence. | |||||
; CHECK-NEXT: Dependences: | ; CHECK-NEXT: Dependences: | ||||
; CHECK-NEXT: Backward: | ; CHECK-NEXT: Backward: | ||||
; CHECK-NEXT: %loadA = load i16, i16* %arrayidxA, align 2 -> | ; CHECK-NEXT: %loadA = load i16, i16* %arrayidxA, align 2 -> | ||||
; CHECK-NEXT: store i16 %mul1, i16* %arrayidxA_plus_2, align 2 | ; CHECK-NEXT: store i16 %mul1, i16* %arrayidxA_plus_2, align 2 | ||||
; CHECK: Run-time memory checks: | ; CHECK: Run-time memory checks: | ||||
; CHECK-NEXT: 0: | ; CHECK-NEXT: 0: | ||||
; CHECK-NEXT: Comparing group | ; CHECK-NEXT: Comparing group | ||||
; CHECK-NEXT: %arrayidxA = getelementptr inbounds i16, i16* %a, i64 %storemerge3 | ; CHECK-NEXT: %arrayidxA = getelementptr inbounds i16, i16* %a, i64 %storemerge3 | ||||
▲ Show 20 Lines • Show All 46 Lines • Show Last 20 Lines |