brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.6 KiB · a23d57c Raw
89 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --filter "LV: Found an estimated cost of [0-9]+ for VF [0-9]+ For instruction:\s*%valB = load i32, ptr %inB, align 4"2; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE23; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+sse4.2 --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=SSE424; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx  --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX15; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,-fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2-SLOWGATHER6; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx2,+fast-gather --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX2-FASTGATHER7; RUN: opt -passes=loop-vectorize -vectorizer-maximize-bandwidth -S -mattr=+avx512bw --debug-only=loop-vectorize --disable-output < %s 2>&1 | FileCheck %s --check-prefixes=AVX5128 9; REQUIRES: asserts10 11target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"12target triple = "x86_64-unknown-linux-gnu"13 14@A = global [1024 x i8] zeroinitializer, align 12815@B = global [1024 x i32] zeroinitializer, align 12816@C = global [1024 x i32] zeroinitializer, align 12817 18define void @test() {19; SSE2-LABEL: 'test'20; SSE2:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i32, ptr %inB, align 421; SSE2:  Cost of 25 for VF 2: {{.*}}ir<%valB> = load22; SSE2:  Cost of 51 for VF 4: {{.*}}ir<%valB> = load23; SSE2:  Cost of 102 for VF 8: {{.*}}ir<%valB> = load24; SSE2:  Cost of 204 for VF 16: {{.*}}ir<%valB> = load25;26; SSE42-LABEL: 'test'27; SSE42:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i32, ptr %inB, align 428; SSE42:  Cost of 24 for VF 2: {{.*}}ir<%valB> = load29; SSE42:  Cost of 48 for VF 4: {{.*}}ir<%valB> = load30; SSE42:  Cost of 96 for VF 8: {{.*}}ir<%valB> = load31; SSE42:  Cost of 192 for VF 16: {{.*}}ir<%valB> = load32;33; AVX1-LABEL: 'test'34; AVX1:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i32, ptr %inB, align 435; AVX1:  Cost of 24 for VF 2: {{.*}}ir<%valB> = load36; AVX1:  Cost of 48 for VF 4: {{.*}}ir<%valB> = load37; AVX1:  Cost of 97 for VF 8: {{.*}}ir<%valB> = load38; AVX1:  Cost of 194 for VF 16: {{.*}}ir<%valB> = load39; AVX1:  Cost of 388 for VF 32: {{.*}}ir<%valB> = load40;41; AVX2-SLOWGATHER-LABEL: 'test'42; AVX2-SLOWGATHER:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i32, ptr %inB, align 443; AVX2-SLOWGATHER:  Cost of 4 for VF 2: {{.*}}ir<%valB> = load44; AVX2-SLOWGATHER:  Cost of 8 for VF 4: {{.*}}ir<%valB> = load45; AVX2-SLOWGATHER:  Cost of 17 for VF 8: {{.*}}ir<%valB> = load46; AVX2-SLOWGATHER:  Cost of 34 for VF 16: {{.*}}ir<%valB> = load47; AVX2-SLOWGATHER:  Cost of 68 for VF 32: {{.*}}ir<%valB> = load48;49; AVX2-FASTGATHER-LABEL: 'test'50; AVX2-FASTGATHER:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i32, ptr %inB, align 451; AVX2-FASTGATHER:  Cost of 4 for VF 2: {{.*}}ir<%valB> = load52; AVX2-FASTGATHER:  Cost of 6 for VF 4: {{.*}}ir<%valB> = load53; AVX2-FASTGATHER:  Cost of 12 for VF 8: {{.*}}ir<%valB> = load54; AVX2-FASTGATHER:  Cost of 24 for VF 16: {{.*}}ir<%valB> = load55; AVX2-FASTGATHER:  Cost of 48 for VF 32: {{.*}}ir<%valB> = load56;57; AVX512-LABEL: 'test'58; AVX512:  LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i32, ptr %inB, align 459; AVX512:  Cost of 6 for VF 2: {{.*}}ir<%valB> = load60; AVX512:  Cost of 13 for VF 4: {{.*}}ir<%valB> = load61; AVX512:  Cost of 10 for VF 8: {{.*}}ir<%valB> = load62; AVX512:  Cost of 18 for VF 16: {{.*}}ir<%valB> = load63; AVX512:  Cost of 36 for VF 32: {{.*}}ir<%valB> = load64; AVX512:  Cost of 72 for VF 64: {{.*}}ir<%valB> = load65;66entry:67  br label %for.body68 69for.body:70  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]71 72  %inA = getelementptr inbounds [1024 x i8], ptr @A, i64 0, i64 %iv73  %valA = load i8, ptr %inA74  %valA.ext = sext i8 %valA to i6475 76  %inB = getelementptr inbounds [1024 x i32], ptr @B, i64 0, i64 %valA.ext77  %valB = load i32, ptr %inB78 79  %out = getelementptr inbounds [1024 x i32], ptr @C, i64 0, i64 %iv80  store i32 %valB, ptr %out81 82  %iv.next = add nuw nsw i64 %iv, 183  %cmp = icmp ult i64 %iv.next, 102484  br i1 %cmp, label %for.body, label %for.cond.cleanup85 86for.cond.cleanup:87  ret void88}89