brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.2 KiB · 5b17920 Raw
97 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --version 52; RUN: opt -passes='print<access-info>' -disable-output %s 2>&1 | FileCheck --check-prefix=DEFAULT %s3; RUN: opt -passes='print<access-info>' -disable-output -max-dependences=5 %s 2>&1 | FileCheck --check-prefix=MAXDEP5 %s4 5define void @dependences_with_strides(ptr %dst, i64 %stride) {6; DEFAULT-LABEL: 'dependences_with_strides'7; DEFAULT-NEXT:    loop:8; DEFAULT-NEXT:      Memory dependences are safe with run-time checks9; DEFAULT-NEXT:      Dependences:10; DEFAULT-NEXT:      Run-time memory checks:11; DEFAULT-NEXT:      Check 0:12; DEFAULT-NEXT:        Comparing group GRP0:13; DEFAULT-NEXT:          %ptr.iv = phi ptr [ %dst, %entry ], [ %ptr.iv.next, %loop ]14; DEFAULT-NEXT:        Against group GRP1:15; DEFAULT-NEXT:          %gep.stride = getelementptr i16, ptr %ptr.iv, i64 %stride16; DEFAULT-NEXT:      Check 1:17; DEFAULT-NEXT:        Comparing group GRP0:18; DEFAULT-NEXT:          %ptr.iv = phi ptr [ %dst, %entry ], [ %ptr.iv.next, %loop ]19; DEFAULT-NEXT:        Against group GRP2:20; DEFAULT-NEXT:        ptr %dst21; DEFAULT-NEXT:      Check 2:22; DEFAULT-NEXT:        Comparing group GRP1:23; DEFAULT-NEXT:          %gep.stride = getelementptr i16, ptr %ptr.iv, i64 %stride24; DEFAULT-NEXT:        Against group GRP2:25; DEFAULT-NEXT:        ptr %dst26; DEFAULT-NEXT:      Grouped accesses:27; DEFAULT-NEXT:        Group GRP0:28; DEFAULT-NEXT:          (Low: %dst High: (4 + %dst))29; DEFAULT-NEXT:            Member: {%dst,+,2}<nw><%loop>30; DEFAULT-NEXT:        Group GRP1:31; DEFAULT-NEXT:          (Low: ((2 * %stride) + %dst) High: (4 + (2 * %stride) + %dst))32; DEFAULT-NEXT:            Member: {((2 * %stride) + %dst),+,2}<nw><%loop>33; DEFAULT-NEXT:        Group GRP2:34; DEFAULT-NEXT:          (Low: %dst High: (2 + %dst))35; DEFAULT-NEXT:            Member: %dst36; DEFAULT-EMPTY:37; DEFAULT-NEXT:      Non vectorizable stores to invariant address were not found in loop.38; DEFAULT-NEXT:      SCEV assumptions:39; DEFAULT-EMPTY:40; DEFAULT-NEXT:      Expressions re-written:41;42; MAXDEP5-LABEL: 'dependences_with_strides'43; MAXDEP5-NEXT:    loop:44; MAXDEP5-NEXT:      Memory dependences are safe with run-time checks45; MAXDEP5-NEXT:      Too many dependences, not recorded46; MAXDEP5-NEXT:      Run-time memory checks:47; MAXDEP5-NEXT:      Check 0:48; MAXDEP5-NEXT:        Comparing group GRP0:49; MAXDEP5-NEXT:          %ptr.iv = phi ptr [ %dst, %entry ], [ %ptr.iv.next, %loop ]50; MAXDEP5-NEXT:        Against group GRP1:51; MAXDEP5-NEXT:          %gep.stride = getelementptr i16, ptr %ptr.iv, i64 %stride52; MAXDEP5-NEXT:      Check 1:53; MAXDEP5-NEXT:        Comparing group GRP0:54; MAXDEP5-NEXT:          %ptr.iv = phi ptr [ %dst, %entry ], [ %ptr.iv.next, %loop ]55; MAXDEP5-NEXT:        Against group GRP2:56; MAXDEP5-NEXT:        ptr %dst57; MAXDEP5-NEXT:      Check 2:58; MAXDEP5-NEXT:        Comparing group GRP1:59; MAXDEP5-NEXT:          %gep.stride = getelementptr i16, ptr %ptr.iv, i64 %stride60; MAXDEP5-NEXT:        Against group GRP2:61; MAXDEP5-NEXT:        ptr %dst62; MAXDEP5-NEXT:      Grouped accesses:63; MAXDEP5-NEXT:        Group GRP0:64; MAXDEP5-NEXT:          (Low: %dst High: (4 + %dst))65; MAXDEP5-NEXT:            Member: {%dst,+,2}<nw><%loop>66; MAXDEP5-NEXT:        Group GRP1:67; MAXDEP5-NEXT:          (Low: ((2 * %stride) + %dst) High: (4 + (2 * %stride) + %dst))68; MAXDEP5-NEXT:            Member: {((2 * %stride) + %dst),+,2}<nw><%loop>69; MAXDEP5-NEXT:        Group GRP2:70; MAXDEP5-NEXT:          (Low: %dst High: (2 + %dst))71; MAXDEP5-NEXT:            Member: %dst72; MAXDEP5-EMPTY:73; MAXDEP5-NEXT:      Non vectorizable stores to invariant address were not found in loop.74; MAXDEP5-NEXT:      SCEV assumptions:75; MAXDEP5-EMPTY:76; MAXDEP5-NEXT:      Expressions re-written:77;78entry:79  br label %loop80 81loop:82  %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ]83  %ptr.iv = phi ptr [ %dst, %entry ], [ %ptr.iv.next, %loop ]84  store i16 0, ptr %ptr.iv, align 285  %gep.stride = getelementptr i16, ptr %ptr.iv, i64 %stride86  store i16 0, ptr %gep.stride, align 287  store i16 0, ptr %dst, align 288  store i16 0, ptr %ptr.iv, align 289  %ptr.iv.next = getelementptr i8, ptr %ptr.iv, i64 290  %iv.next = add i32 %iv, 191  %exitcond.not = icmp eq i32 %iv, 192  br i1 %exitcond.not, label %exit, label %loop93 94exit:95  ret void96}97