brintos

brintos / llvm-project-archived public Read only

0
0
Text · 74.3 KiB · 551b85b Raw
1112 lines · plain
1; RUN: opt -passes=loop-vectorize -force-vector-width=2 -debug-only=loop-vectorize -disable-output < %s 2>&1 | FileCheck %s --check-prefix=VF_22; RUN: opt -passes=loop-vectorize -force-vector-width=4 -debug-only=loop-vectorize -disable-output < %s 2>&1 | FileCheck %s --check-prefix=VF_43; RUN: opt -passes=loop-vectorize -force-vector-width=8 -debug-only=loop-vectorize -disable-output < %s 2>&1 | FileCheck %s --check-prefix=VF_84; RUN: opt -passes=loop-vectorize -force-vector-width=16 -debug-only=loop-vectorize -disable-output < %s 2>&1 | FileCheck %s --check-prefix=VF_165; REQUIRES: asserts6 7target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"8target triple = "thumbv8.1m.main-none-eabi"9 10; Factor 211 12%i8.2 = type {i8, i8}13define void @i8_factor_2(ptr %data, i64 %n) #0 {14entry:15  br label %for.body16 17; VF_2-LABEL:  Checking a loop in 'i8_factor_2'18; VF_2:          Found an estimated cost of 12 for VF 2 For instruction: %tmp2 = load i8, ptr %tmp0, align 119; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp3 = load i8, ptr %tmp1, align 120; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i8 %tmp2, ptr %tmp0, align 121; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i8 %tmp3, ptr %tmp1, align 122; VF_4-LABEL:  Checking a loop in 'i8_factor_2'23; VF_4:          Found an estimated cost of 4 for VF 4 For instruction: %tmp2 = load i8, ptr %tmp0, align 124; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: %tmp3 = load i8, ptr %tmp1, align 125; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: store i8 %tmp2, ptr %tmp0, align 126; VF_4-NEXT:     Found an estimated cost of 4 for VF 4 For instruction: store i8 %tmp3, ptr %tmp1, align 127; VF_8-LABEL:  Checking a loop in 'i8_factor_2'28; VF_8:          Found an estimated cost of 4 for VF 8 For instruction: %tmp2 = load i8, ptr %tmp0, align 129; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: %tmp3 = load i8, ptr %tmp1, align 130; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: store i8 %tmp2, ptr %tmp0, align 131; VF_8-NEXT:     Found an estimated cost of 4 for VF 8 For instruction: store i8 %tmp3, ptr %tmp1, align 132; VF_16-LABEL: Checking a loop in 'i8_factor_2'33; VF_16:         Found an estimated cost of 4 for VF 16 For instruction: %tmp2 = load i8, ptr %tmp0, align 134; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: %tmp3 = load i8, ptr %tmp1, align 135; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: store i8 %tmp2, ptr %tmp0, align 136; VF_16-NEXT:    Found an estimated cost of 4 for VF 16 For instruction: store i8 %tmp3, ptr %tmp1, align 137for.body:38  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]39  %tmp0 = getelementptr inbounds %i8.2, ptr %data, i64 %i, i32 040  %tmp1 = getelementptr inbounds %i8.2, ptr %data, i64 %i, i32 141  %tmp2 = load i8, ptr %tmp0, align 142  %tmp3 = load i8, ptr %tmp1, align 143  store i8 %tmp2, ptr %tmp0, align 144  store i8 %tmp3, ptr %tmp1, align 145  %i.next = add nuw nsw i64 %i, 146  %cond = icmp slt i64 %i.next, %n47  br i1 %cond, label %for.body, label %for.end48 49for.end:50  ret void51}52 53%i16.2 = type {i16, i16}54define void @i16_factor_2(ptr %data, i64 %n) #0 {55entry:56  br label %for.body57 58; VF_2-LABEL:  Checking a loop in 'i16_factor_2'59; VF_2:          Found an estimated cost of 12 for VF 2 For instruction: %tmp2 = load i16, ptr %tmp0, align 260; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp3 = load i16, ptr %tmp1, align 261; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i16 %tmp2, ptr %tmp0, align 262; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i16 %tmp3, ptr %tmp1, align 263; VF_4-LABEL:  Checking a loop in 'i16_factor_2'64; VF_4:          Found an estimated cost of 4 for VF 4 For instruction: %tmp2 = load i16, ptr %tmp0, align 265; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: %tmp3 = load i16, ptr %tmp1, align 266; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: store i16 %tmp2, ptr %tmp0, align 267; VF_4-NEXT:     Found an estimated cost of 4 for VF 4 For instruction: store i16 %tmp3, ptr %tmp1, align 268; VF_8-LABEL:  Checking a loop in 'i16_factor_2'69; VF_8:          Found an estimated cost of 4 for VF 8 For instruction: %tmp2 = load i16, ptr %tmp0, align 270; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: %tmp3 = load i16, ptr %tmp1, align 271; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: store i16 %tmp2, ptr %tmp0, align 272; VF_8-NEXT:     Found an estimated cost of 4 for VF 8 For instruction: store i16 %tmp3, ptr %tmp1, align 273; VF_16-LABEL: Checking a loop in 'i16_factor_2'74; VF_16:         Found an estimated cost of 8 for VF 16 For instruction: %tmp2 = load i16, ptr %tmp0, align 275; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: %tmp3 = load i16, ptr %tmp1, align 276; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: store i16 %tmp2, ptr %tmp0, align 277; VF_16-NEXT:    Found an estimated cost of 8 for VF 16 For instruction: store i16 %tmp3, ptr %tmp1, align 278for.body:79  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]80  %tmp0 = getelementptr inbounds %i16.2, ptr %data, i64 %i, i32 081  %tmp1 = getelementptr inbounds %i16.2, ptr %data, i64 %i, i32 182  %tmp2 = load i16, ptr %tmp0, align 283  %tmp3 = load i16, ptr %tmp1, align 284  store i16 %tmp2, ptr %tmp0, align 285  store i16 %tmp3, ptr %tmp1, align 286  %i.next = add nuw nsw i64 %i, 187  %cond = icmp slt i64 %i.next, %n88  br i1 %cond, label %for.body, label %for.end89 90for.end:91  ret void92}93 94%i32.2 = type {i32, i32}95define void @i32_factor_2(ptr %data, i64 %n) #0 {96entry:97  br label %for.body98 99; VF_2-LABEL:  Checking a loop in 'i32_factor_2'100; VF_2:          Found an estimated cost of 12 for VF 2 For instruction: %tmp2 = load i32, ptr %tmp0, align 4101; VF_2-NEXT:     Found an estimated cost of 12  for VF 2 For instruction: %tmp3 = load i32, ptr %tmp1, align 4102; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i32 %tmp2, ptr %tmp0, align 4103; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i32 %tmp3, ptr %tmp1, align 4104; VF_4-LABEL:  Checking a loop in 'i32_factor_2'105; VF_4:          Found an estimated cost of 4 for VF 4 For instruction: %tmp2 = load i32, ptr %tmp0, align 4106; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: %tmp3 = load i32, ptr %tmp1, align 4107; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: store i32 %tmp2, ptr %tmp0, align 4108; VF_4-NEXT:     Found an estimated cost of 4 for VF 4 For instruction: store i32 %tmp3, ptr %tmp1, align 4109; VF_8-LABEL:  Checking a loop in 'i32_factor_2'110; VF_8:          Found an estimated cost of 8 for VF 8 For instruction: %tmp2 = load i32, ptr %tmp0, align 4111; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: %tmp3 = load i32, ptr %tmp1, align 4112; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: store i32 %tmp2, ptr %tmp0, align 4113; VF_8-NEXT:     Found an estimated cost of 8 for VF 8 For instruction: store i32 %tmp3, ptr %tmp1, align 4114; VF_16-LABEL: Checking a loop in 'i32_factor_2'115; VF_16:         Found an estimated cost of 16 for VF 16 For instruction: %tmp2 = load i32, ptr %tmp0, align 4116; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: %tmp3 = load i32, ptr %tmp1, align 4117; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: store i32 %tmp2, ptr %tmp0, align 4118; VF_16-NEXT:    Found an estimated cost of 16 for VF 16 For instruction: store i32 %tmp3, ptr %tmp1, align 4119for.body:120  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]121  %tmp0 = getelementptr inbounds %i32.2, ptr %data, i64 %i, i32 0122  %tmp1 = getelementptr inbounds %i32.2, ptr %data, i64 %i, i32 1123  %tmp2 = load i32, ptr %tmp0, align 4124  %tmp3 = load i32, ptr %tmp1, align 4125  store i32 %tmp2, ptr %tmp0, align 4126  store i32 %tmp3, ptr %tmp1, align 4127  %i.next = add nuw nsw i64 %i, 1128  %cond = icmp slt i64 %i.next, %n129  br i1 %cond, label %for.body, label %for.end130 131for.end:132  ret void133}134 135%i64.2 = type {i64, i64}136define void @i64_factor_2(ptr %data, i64 %n) #0 {137entry:138  br label %for.body139 140; VF_2-LABEL:  Checking a loop in 'i64_factor_2'141; VF_2:          Found an estimated cost of 22 for VF 2 For instruction: %tmp2 = load i64, ptr %tmp0, align 8142; VF_2-NEXT:     Found an estimated cost of 22 for VF 2 For instruction: %tmp3 = load i64, ptr %tmp1, align 8143; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: store i64 %tmp2, ptr %tmp0, align 8144; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: store i64 %tmp3, ptr %tmp1, align 8145; VF_4-LABEL:  Checking a loop in 'i64_factor_2'146; VF_4:          Found an estimated cost of 44 for VF 4 For instruction: %tmp2 = load i64, ptr %tmp0, align 8147; VF_4-NEXT:     Found an estimated cost of 44 for VF 4 For instruction: %tmp3 = load i64, ptr %tmp1, align 8148; VF_4-NEXT:     Found an estimated cost of 12 for VF 4 For instruction: store i64 %tmp2, ptr %tmp0, align 8149; VF_4-NEXT:     Found an estimated cost of 12 for VF 4 For instruction: store i64 %tmp3, ptr %tmp1, align 8150; VF_8-LABEL:  Checking a loop in 'i64_factor_2'151; VF_8:          Found an estimated cost of 88 for VF 8 For instruction: %tmp2 = load i64, ptr %tmp0, align 8152; VF_8-NEXT:     Found an estimated cost of 88 for VF 8 For instruction: %tmp3 = load i64, ptr %tmp1, align 8153; VF_8-NEXT:     Found an estimated cost of 24 for VF 8 For instruction: store i64 %tmp2, ptr %tmp0, align 8154; VF_8-NEXT:     Found an estimated cost of 24 for VF 8 For instruction: store i64 %tmp3, ptr %tmp1, align 8155; VF_16-LABEL: Checking a loop in 'i64_factor_2'156; VF_16:         Found an estimated cost of 176 for VF 16 For instruction: %tmp2 = load i64, ptr %tmp0, align 8157; VF_16-NEXT:    Found an estimated cost of 176 for VF 16 For instruction: %tmp3 = load i64, ptr %tmp1, align 8158; VF_16-NEXT:    Found an estimated cost of 48 for VF 16 For instruction: store i64 %tmp2, ptr %tmp0, align 8159; VF_16-NEXT:    Found an estimated cost of 48 for VF 16 For instruction: store i64 %tmp3, ptr %tmp1, align 8160for.body:161  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]162  %tmp0 = getelementptr inbounds %i64.2, ptr %data, i64 %i, i32 0163  %tmp1 = getelementptr inbounds %i64.2, ptr %data, i64 %i, i32 1164  %tmp2 = load i64, ptr %tmp0, align 8165  %tmp3 = load i64, ptr %tmp1, align 8166  store i64 %tmp2, ptr %tmp0, align 8167  store i64 %tmp3, ptr %tmp1, align 8168  %i.next = add nuw nsw i64 %i, 1169  %cond = icmp slt i64 %i.next, %n170  br i1 %cond, label %for.body, label %for.end171 172for.end:173  ret void174}175 176%f16.2 = type {half, half}177define void @f16_factor_2(ptr %data, i64 %n) #0 {178entry:179  br label %for.body180 181; VF_2-LABEL:  Checking a loop in 'f16_factor_2'182; VF_2:          Found an estimated cost of 6 for VF 2 For instruction: %tmp2 = load half, ptr %tmp0, align 2183; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: %tmp3 = load half, ptr %tmp1, align 2184; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store half %tmp2, ptr %tmp0, align 2185; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store half %tmp3, ptr %tmp1, align 2186; VF_4-LABEL:  Checking a loop in 'f16_factor_2'187; VF_4:          Found an estimated cost of 18 for VF 4 For instruction: %tmp2 = load half, ptr %tmp0, align 2188; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: %tmp3 = load half, ptr %tmp1, align 2189; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: store half %tmp2, ptr %tmp0, align 2190; VF_4-NEXT:     Found an estimated cost of 18 for VF 4 For instruction: store half %tmp3, ptr %tmp1, align 2191; VF_8-LABEL:  Checking a loop in 'f16_factor_2'192; VF_8:          Found an estimated cost of 4 for VF 8 For instruction: %tmp2 = load half, ptr %tmp0, align 2193; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: %tmp3 = load half, ptr %tmp1, align 2194; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: store half %tmp2, ptr %tmp0, align 2195; VF_8-NEXT:     Found an estimated cost of 4 for VF 8 For instruction: store half %tmp3, ptr %tmp1, align 2196; VF_16-LABEL: Checking a loop in 'f16_factor_2'197; VF_16:         Found an estimated cost of 8 for VF 16 For instruction: %tmp2 = load half, ptr %tmp0, align 2198; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: %tmp3 = load half, ptr %tmp1, align 2199; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: store half %tmp2, ptr %tmp0, align 2200; VF_16-NEXT:    Found an estimated cost of 8 for VF 16 For instruction: store half %tmp3, ptr %tmp1, align 2201for.body:202  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]203  %tmp0 = getelementptr inbounds %f16.2, ptr %data, i64 %i, i32 0204  %tmp1 = getelementptr inbounds %f16.2, ptr %data, i64 %i, i32 1205  %tmp2 = load half, ptr %tmp0, align 2206  %tmp3 = load half, ptr %tmp1, align 2207  store half %tmp2, ptr %tmp0, align 2208  store half %tmp3, ptr %tmp1, align 2209  %i.next = add nuw nsw i64 %i, 1210  %cond = icmp slt i64 %i.next, %n211  br i1 %cond, label %for.body, label %for.end212 213for.end:214  ret void215}216 217%f32.2 = type {float, float}218define void @f32_factor_2(ptr %data, i64 %n) #0 {219entry:220  br label %for.body221 222; VF_2-LABEL:  Checking a loop in 'f32_factor_2'223; VF_2:          Found an estimated cost of 10 for VF 2 For instruction: %tmp2 = load float, ptr %tmp0, align 4224; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: %tmp3 = load float, ptr %tmp1, align 4225; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: store float %tmp2, ptr %tmp0, align 4226; VF_2-NEXT:     Found an estimated cost of 10 for VF 2 For instruction: store float %tmp3, ptr %tmp1, align 4227; VF_4-LABEL:  Checking a loop in 'f32_factor_2'228; VF_4:          Found an estimated cost of 4 for VF 4 For instruction: %tmp2 = load float, ptr %tmp0, align 4229; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: %tmp3 = load float, ptr %tmp1, align 4230; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: store float %tmp2, ptr %tmp0, align 4231; VF_4-NEXT:     Found an estimated cost of 4 for VF 4 For instruction: store float %tmp3, ptr %tmp1, align 4232; VF_8-LABEL:  Checking a loop in 'f32_factor_2'233; VF_8:          Found an estimated cost of 8 for VF 8 For instruction: %tmp2 = load float, ptr %tmp0, align 4234; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: %tmp3 = load float, ptr %tmp1, align 4235; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: store float %tmp2, ptr %tmp0, align 4236; VF_8-NEXT:     Found an estimated cost of 8 for VF 8 For instruction: store float %tmp3, ptr %tmp1, align 4237; VF_16-LABEL: Checking a loop in 'f32_factor_2'238; VF_16:         Found an estimated cost of 16 for VF 16 For instruction: %tmp2 = load float, ptr %tmp0, align 4239; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: %tmp3 = load float, ptr %tmp1, align 4240; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: store float %tmp2, ptr %tmp0, align 4241; VF_16-NEXT:    Found an estimated cost of 16 for VF 16 For instruction: store float %tmp3, ptr %tmp1, align 4242for.body:243  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]244  %tmp0 = getelementptr inbounds %f32.2, ptr %data, i64 %i, i32 0245  %tmp1 = getelementptr inbounds %f32.2, ptr %data, i64 %i, i32 1246  %tmp2 = load float, ptr %tmp0, align 4247  %tmp3 = load float, ptr %tmp1, align 4248  store float %tmp2, ptr %tmp0, align 4249  store float %tmp3, ptr %tmp1, align 4250  %i.next = add nuw nsw i64 %i, 1251  %cond = icmp slt i64 %i.next, %n252  br i1 %cond, label %for.body, label %for.end253 254for.end:255  ret void256}257 258%f64.2 = type {double, double}259define void @f64_factor_2(ptr %data, i64 %n) #0 {260entry:261  br label %for.body262 263; VF_2-LABEL:  Checking a loop in 'f64_factor_2'264; VF_2:          Found an estimated cost of 6 for VF 2 For instruction: %tmp2 = load double, ptr %tmp0, align 8265; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: %tmp3 = load double, ptr %tmp1, align 8266; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store double %tmp2, ptr %tmp0, align 8267; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store double %tmp3, ptr %tmp1, align 8268; VF_4-LABEL:  Checking a loop in 'f64_factor_2'269; VF_4:          Found an estimated cost of 12 for VF 4 For instruction: %tmp2 = load double, ptr %tmp0, align 8270; VF_4-NEXT:     Found an estimated cost of 12 for VF 4 For instruction: %tmp3 = load double, ptr %tmp1, align 8271; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store double %tmp2, ptr %tmp0, align 8272; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store double %tmp3, ptr %tmp1, align 8273; VF_8-LABEL:  Checking a loop in 'f64_factor_2'274; VF_8:          Found an estimated cost of 24 for VF 8 For instruction: %tmp2 = load double, ptr %tmp0, align 8275; VF_8-NEXT:     Found an estimated cost of 24 for VF 8 For instruction: %tmp3 = load double, ptr %tmp1, align 8276; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store double %tmp2, ptr %tmp0, align 8277; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store double %tmp3, ptr %tmp1, align 8278; VF_16-LABEL: Checking a loop in 'f64_factor_2'279; VF_16:         Found an estimated cost of 48 for VF 16 For instruction: %tmp2 = load double, ptr %tmp0, align 8280; VF_16-NEXT:    Found an estimated cost of 48 for VF 16 For instruction: %tmp3 = load double, ptr %tmp1, align 8281; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store double %tmp2, ptr %tmp0, align 8282; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store double %tmp3, ptr %tmp1, align 8283for.body:284  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]285  %tmp0 = getelementptr inbounds %f64.2, ptr %data, i64 %i, i32 0286  %tmp1 = getelementptr inbounds %f64.2, ptr %data, i64 %i, i32 1287  %tmp2 = load double, ptr %tmp0, align 8288  %tmp3 = load double, ptr %tmp1, align 8289  store double %tmp2, ptr %tmp0, align 8290  store double %tmp3, ptr %tmp1, align 8291  %i.next = add nuw nsw i64 %i, 1292  %cond = icmp slt i64 %i.next, %n293  br i1 %cond, label %for.body, label %for.end294 295for.end:296  ret void297}298 299 300 301; Factor 3302 303%i8.3 = type {i8, i8, i8}304define void @i8_factor_3(ptr %data, i64 %n) #0 {305entry:306  br label %for.body307 308; VF_2-LABEL:  Checking a loop in 'i8_factor_3'309; VF_2:          Found an estimated cost of 12 for VF 2 For instruction: %tmp3 = load i8, ptr %tmp0, align 1310; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp4 = load i8, ptr %tmp1, align 1311; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp5 = load i8, ptr %tmp2, align 1312; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i8 %tmp3, ptr %tmp0, align 1313; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i8 %tmp4, ptr %tmp1, align 1314; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i8 %tmp5, ptr %tmp2, align 1315; VF_4-LABEL:  Checking a loop in 'i8_factor_3'316; VF_4:          Found an estimated cost of 24 for VF 4 For instruction: %tmp3 = load i8, ptr %tmp0, align 1317; VF_4-NEXT:     Found an estimated cost of 24 for VF 4 For instruction: %tmp4 = load i8, ptr %tmp1, align 1318; VF_4-NEXT:     Found an estimated cost of 24 for VF 4 For instruction: %tmp5 = load i8, ptr %tmp2, align 1319; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i8 %tmp3,  ptr %tmp0, align 1320; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i8 %tmp4, ptr %tmp1, align 1321; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i8 %tmp5, ptr %tmp2, align 1322; VF_8-LABEL:  Checking a loop in 'i8_factor_3'323; VF_8:          Found an estimated cost of 48 for VF 8 For instruction: %tmp3 = load i8, ptr %tmp0, align 1324; VF_8-NEXT:     Found an estimated cost of 48 for VF 8 For instruction: %tmp4 = load i8, ptr %tmp1, align 1325; VF_8-NEXT:     Found an estimated cost of 48 for VF 8 For instruction: %tmp5 = load i8, ptr %tmp2, align 1326; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i8 %tmp3, ptr %tmp0, align 1327; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i8 %tmp4, ptr %tmp1, align 1328; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i8 %tmp5, ptr %tmp2, align 1329; VF_16-LABEL: Checking a loop in 'i8_factor_3'330; VF_16:         Found an estimated cost of 96 for VF 16 For instruction: %tmp3 = load i8, ptr %tmp0, align 1331; VF_16-NEXT:    Found an estimated cost of 96 for VF 16 For instruction: %tmp4 = load i8, ptr %tmp1, align 1332; VF_16-NEXT:    Found an estimated cost of 96 for VF 16 For instruction: %tmp5 = load i8, ptr %tmp2, align 1333; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i8 %tmp3, ptr %tmp0, align 1334; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i8 %tmp4, ptr %tmp1, align 1335; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i8 %tmp5, ptr %tmp2, align 1336for.body:337  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]338  %tmp0 = getelementptr inbounds %i8.3, ptr %data, i64 %i, i32 0339  %tmp1 = getelementptr inbounds %i8.3, ptr %data, i64 %i, i32 1340  %tmp2 = getelementptr inbounds %i8.3, ptr %data, i64 %i, i32 2341  %tmp3 = load i8, ptr %tmp0, align 1342  %tmp4 = load i8, ptr %tmp1, align 1343  %tmp5 = load i8, ptr %tmp2, align 1344  store i8 %tmp3, ptr %tmp0, align 1345  store i8 %tmp4, ptr %tmp1, align 1346  store i8 %tmp5, ptr %tmp2, align 1347  %i.next = add nuw nsw i64 %i, 1348  %cond = icmp slt i64 %i.next, %n349  br i1 %cond, label %for.body, label %for.end350 351for.end:352  ret void353}354 355%i16.3 = type {i16, i16, i16}356define void @i16_factor_3(ptr %data, i64 %n) #0 {357entry:358  br label %for.body359 360; VF_2-LABEL:  Checking a loop in 'i16_factor_3'361; VF_2:          Found an estimated cost of 12 for VF 2 For instruction: %tmp3 = load i16, ptr %tmp0, align 2362; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp4 = load i16, ptr %tmp1, align 2363; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp5 = load i16, ptr %tmp2, align 2364; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i16 %tmp3, ptr %tmp0, align 2365; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i16 %tmp4, ptr %tmp1, align 2366; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i16 %tmp5, ptr %tmp2, align 2367; VF_4-LABEL:  Checking a loop in 'i16_factor_3'368; VF_4:          Found an estimated cost of 24 for VF 4 For instruction: %tmp3 = load i16, ptr %tmp0, align 2369; VF_4-NEXT:     Found an estimated cost of 24 for VF 4 For instruction: %tmp4 = load i16, ptr %tmp1, align 2370; VF_4-NEXT:     Found an estimated cost of 24 for VF 4 For instruction: %tmp5 = load i16, ptr %tmp2, align 2371; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i16 %tmp3, ptr %tmp0, align 2372; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i16 %tmp4, ptr %tmp1, align 2373; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i16 %tmp5, ptr %tmp2, align 2374; VF_8-LABEL:  Checking a loop in 'i16_factor_3'375; VF_8:          Found an estimated cost of 48 for VF 8 For instruction: %tmp3 = load i16, ptr %tmp0, align 2376; VF_8-NEXT:     Found an estimated cost of 48 for VF 8 For instruction: %tmp4 = load i16, ptr %tmp1, align 2377; VF_8-NEXT:     Found an estimated cost of 48 for VF 8 For instruction: %tmp5 = load i16, ptr %tmp2, align 2378; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i16 %tmp3, ptr %tmp0, align 2379; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i16 %tmp4, ptr %tmp1, align 2380; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i16 %tmp5, ptr %tmp2, align 2381; VF_16-LABEL: Checking a loop in 'i16_factor_3'382; VF_16:         Found an estimated cost of 96 for VF 16 For instruction: %tmp3 = load i16, ptr %tmp0, align 2383; VF_16-NEXT:    Found an estimated cost of 96 for VF 16 For instruction: %tmp4 = load i16, ptr %tmp1, align 2384; VF_16-NEXT:    Found an estimated cost of 96 for VF 16 For instruction: %tmp5 = load i16, ptr %tmp2, align 2385; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i16 %tmp3, ptr %tmp0, align 2386; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i16 %tmp4, ptr %tmp1, align 2387; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i16 %tmp5, ptr %tmp2, align 2388for.body:389  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]390  %tmp0 = getelementptr inbounds %i16.3, ptr %data, i64 %i, i32 0391  %tmp1 = getelementptr inbounds %i16.3, ptr %data, i64 %i, i32 1392  %tmp2 = getelementptr inbounds %i16.3, ptr %data, i64 %i, i32 2393  %tmp3 = load i16, ptr %tmp0, align 2394  %tmp4 = load i16, ptr %tmp1, align 2395  %tmp5 = load i16, ptr %tmp2, align 2396  store i16 %tmp3, ptr %tmp0, align 2397  store i16 %tmp4, ptr %tmp1, align 2398  store i16 %tmp5, ptr %tmp2, align 2399  %i.next = add nuw nsw i64 %i, 1400  %cond = icmp slt i64 %i.next, %n401  br i1 %cond, label %for.body, label %for.end402 403for.end:404  ret void405}406 407%i32.3 = type {i32, i32, i32}408define void @i32_factor_3(ptr %data, i64 %n) #0 {409entry:410  br label %for.body411 412; VF_2-LABEL:  Checking a loop in 'i32_factor_3'413; VF_2:          Found an estimated cost of 12 for VF 2 For instruction: %tmp3 = load i32, ptr %tmp0, align 4414; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp4 = load i32, ptr %tmp1, align 4415; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp5 = load i32, ptr %tmp2, align 4416; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i32 %tmp3, ptr %tmp0, align 4417; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i32 %tmp4, ptr %tmp1, align 4418; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i32 %tmp5, ptr %tmp2, align 4419; VF_4-LABEL:  Checking a loop in 'i32_factor_3'420; VF_4:          Found an estimated cost of 8 for VF 4 For instruction: %tmp3 = load i32, ptr %tmp0, align 4421; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: %tmp4 = load i32, ptr %tmp1, align 4422; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: %tmp5 = load i32, ptr %tmp2, align 4423; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i32 %tmp3, ptr %tmp0, align 4424; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i32 %tmp4, ptr %tmp1, align 4425; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i32 %tmp5, ptr %tmp2, align 4426; VF_8-LABEL:  Checking a loop in 'i32_factor_3'427; VF_8:          Found an estimated cost of 48 for VF 8 For instruction: %tmp3 = load i32, ptr %tmp0, align 4428; VF_8-NEXT:     Found an estimated cost of 48 for VF 8 For instruction: %tmp4 = load i32, ptr %tmp1, align 4429; VF_8-NEXT:     Found an estimated cost of 48 for VF 8 For instruction: %tmp5 = load i32, ptr %tmp2, align 4430; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i32 %tmp3, ptr %tmp0, align 4431; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i32 %tmp4, ptr %tmp1, align 4432; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i32 %tmp5, ptr %tmp2, align 4433; VF_16-LABEL: Checking a loop in 'i32_factor_3'434; VF_16:         Found an estimated cost of 96 for VF 16 For instruction: %tmp3 = load i32, ptr %tmp0, align 4435; VF_16-NEXT:    Found an estimated cost of 96 for VF 16 For instruction: %tmp4 = load i32, ptr %tmp1, align 4436; VF_16-NEXT:    Found an estimated cost of 96 for VF 16 For instruction: %tmp5 = load i32, ptr %tmp2, align 4437; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i32 %tmp3, ptr %tmp0, align 4438; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i32 %tmp4, ptr %tmp1, align 4439; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i32 %tmp5, ptr %tmp2, align 4440for.body:441  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]442  %tmp0 = getelementptr inbounds %i32.3, ptr %data, i64 %i, i32 0443  %tmp1 = getelementptr inbounds %i32.3, ptr %data, i64 %i, i32 1444  %tmp2 = getelementptr inbounds %i32.3, ptr %data, i64 %i, i32 2445  %tmp3 = load i32, ptr %tmp0, align 4446  %tmp4 = load i32, ptr %tmp1, align 4447  %tmp5 = load i32, ptr %tmp2, align 4448  store i32 %tmp3, ptr %tmp0, align 4449  store i32 %tmp4, ptr %tmp1, align 4450  store i32 %tmp5, ptr %tmp2, align 4451  %i.next = add nuw nsw i64 %i, 1452  %cond = icmp slt i64 %i.next, %n453  br i1 %cond, label %for.body, label %for.end454 455for.end:456  ret void457}458 459%i64.3 = type {i64, i64, i64}460define void @i64_factor_3(ptr %data, i64 %n) #0 {461entry:462  br label %for.body463 464; VF_2-LABEL:  Checking a loop in 'i64_factor_3'465; VF_2:          Found an estimated cost of 22 for VF 2 For instruction: %tmp3 = load i64, ptr %tmp0, align 8466; VF_2-NEXT:     Found an estimated cost of 22 for VF 2 For instruction: %tmp4 = load i64, ptr %tmp1, align 8467; VF_2-NEXT:     Found an estimated cost of 22 for VF 2 For instruction: %tmp5 = load i64, ptr %tmp2, align 8468; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: store i64 %tmp3, ptr %tmp0, align 8469; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: store i64 %tmp4, ptr %tmp1, align 8470; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: store i64 %tmp5, ptr %tmp2, align 8471; VF_4-LABEL:  Checking a loop in 'i64_factor_3'472; VF_4:          Found an estimated cost of 44 for VF 4 For instruction: %tmp3 = load i64, ptr %tmp0, align 8473; VF_4-NEXT:     Found an estimated cost of 44 for VF 4 For instruction: %tmp4 = load i64, ptr %tmp1, align 8474; VF_4-NEXT:     Found an estimated cost of 44 for VF 4 For instruction: %tmp5 = load i64, ptr %tmp2, align 8475; VF_4-NEXT:     Found an estimated cost of 12 for VF 4 For instruction: store i64 %tmp3, ptr %tmp0, align 8476; VF_4-NEXT:     Found an estimated cost of 12 for VF 4 For instruction: store i64 %tmp4, ptr %tmp1, align 8477; VF_4-NEXT:     Found an estimated cost of 12 for VF 4 For instruction: store i64 %tmp5, ptr %tmp2, align 8478; VF_8-LABEL:  Checking a loop in 'i64_factor_3'479; VF_8:          Found an estimated cost of 88 for VF 8 For instruction: %tmp3 = load i64, ptr %tmp0, align 8480; VF_8-NEXT:     Found an estimated cost of 88 for VF 8 For instruction: %tmp4 = load i64, ptr %tmp1, align 8481; VF_8-NEXT:     Found an estimated cost of 88 for VF 8 For instruction: %tmp5 = load i64, ptr %tmp2, align 8482; VF_8-NEXT:     Found an estimated cost of 24 for VF 8 For instruction: store i64 %tmp3, ptr %tmp0, align 8483; VF_8-NEXT:     Found an estimated cost of 24 for VF 8 For instruction: store i64 %tmp4, ptr %tmp1, align 8484; VF_8-NEXT:     Found an estimated cost of 24 for VF 8 For instruction: store i64 %tmp5, ptr %tmp2, align 8485; VF_16-LABEL: Checking a loop in 'i64_factor_3'486; VF_16:         Found an estimated cost of 176 for VF 16 For instruction: %tmp3 = load i64, ptr %tmp0, align 8487; VF_16-NEXT:    Found an estimated cost of 176 for VF 16 For instruction: %tmp4 = load i64, ptr %tmp1, align 8488; VF_16-NEXT:    Found an estimated cost of 176 for VF 16 For instruction: %tmp5 = load i64, ptr %tmp2, align 8489; VF_16-NEXT:    Found an estimated cost of 48 for VF 16 For instruction: store i64 %tmp3, ptr %tmp0, align 8490; VF_16-NEXT:    Found an estimated cost of 48 for VF 16 For instruction: store i64 %tmp4, ptr %tmp1, align 8491; VF_16-NEXT:    Found an estimated cost of 48 for VF 16 For instruction: store i64 %tmp5, ptr %tmp2, align 8492for.body:493  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]494  %tmp0 = getelementptr inbounds %i64.3, ptr %data, i64 %i, i32 0495  %tmp1 = getelementptr inbounds %i64.3, ptr %data, i64 %i, i32 1496  %tmp2 = getelementptr inbounds %i64.3, ptr %data, i64 %i, i32 2497  %tmp3 = load i64, ptr %tmp0, align 8498  %tmp4 = load i64, ptr %tmp1, align 8499  %tmp5 = load i64, ptr %tmp2, align 8500  store i64 %tmp3, ptr %tmp0, align 8501  store i64 %tmp4, ptr %tmp1, align 8502  store i64 %tmp5, ptr %tmp2, align 8503  %i.next = add nuw nsw i64 %i, 1504  %cond = icmp slt i64 %i.next, %n505  br i1 %cond, label %for.body, label %for.end506 507for.end:508  ret void509}510 511%f16.3 = type {half, half, half}512define void @f16_factor_3(ptr %data, i64 %n) #0 {513entry:514  br label %for.body515 516; VF_2-LABEL:  Checking a loop in 'f16_factor_3'517; VF_2:          Found an estimated cost of 6 for VF 2 For instruction: %tmp3 = load half, ptr %tmp0, align 2518; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: %tmp4 = load half, ptr %tmp1, align 2519; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: %tmp5 = load half, ptr %tmp2, align 2520; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store half %tmp3, ptr %tmp0, align 2521; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store half %tmp4, ptr %tmp1, align 2522; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store half %tmp5, ptr %tmp2, align 2523; VF_4-LABEL:  Checking a loop in 'f16_factor_3'524; VF_4:          Found an estimated cost of 28 for VF 4 For instruction: %tmp3 = load half, ptr %tmp0, align 2525; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: %tmp4 = load half, ptr %tmp1, align 2526; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: %tmp5 = load half, ptr %tmp2, align 2527; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: store half %tmp3, ptr %tmp0, align 2528; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: store half %tmp4, ptr %tmp1, align 2529; VF_4-NEXT:     Found an estimated cost of 28 for VF 4 For instruction: store half %tmp5, ptr %tmp2, align 2530; VF_8-LABEL:  Checking a loop in 'f16_factor_3'531; VF_8:          Found an estimated cost of 56 for VF 8 For instruction: %tmp3 = load half, ptr %tmp0, align 2532; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: %tmp4 = load half, ptr %tmp1, align 2533; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: %tmp5 = load half, ptr %tmp2, align 2534; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: store half %tmp3, ptr %tmp0, align 2535; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: store half %tmp4, ptr %tmp1, align 2536; VF_8-NEXT:     Found an estimated cost of 56 for VF 8 For instruction: store half %tmp5, ptr %tmp2, align 2537; VF_16-LABEL: Checking a loop in 'f16_factor_3'538; VF_16:         Found an estimated cost of 112 for VF 16 For instruction: %tmp3 = load half, ptr %tmp0, align 2539; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: %tmp4 = load half, ptr %tmp1, align 2540; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: %tmp5 = load half, ptr %tmp2, align 2541; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: store half %tmp3, ptr %tmp0, align 2542; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: store half %tmp4, ptr %tmp1, align 2543; VF_16-NEXT:    Found an estimated cost of 112 for VF 16 For instruction: store half %tmp5, ptr %tmp2, align 2544for.body:545  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]546  %tmp0 = getelementptr inbounds %f16.3, ptr %data, i64 %i, i32 0547  %tmp1 = getelementptr inbounds %f16.3, ptr %data, i64 %i, i32 1548  %tmp2 = getelementptr inbounds %f16.3, ptr %data, i64 %i, i32 2549  %tmp3 = load half, ptr %tmp0, align 2550  %tmp4 = load half, ptr %tmp1, align 2551  %tmp5 = load half, ptr %tmp2, align 2552  store half %tmp3, ptr %tmp0, align 2553  store half %tmp4, ptr %tmp1, align 2554  store half %tmp5, ptr %tmp2, align 2555  %i.next = add nuw nsw i64 %i, 1556  %cond = icmp slt i64 %i.next, %n557  br i1 %cond, label %for.body, label %for.end558 559for.end:560  ret void561}562 563%f32.3 = type {float, float, float}564define void @f32_factor_3(ptr %data, i64 %n) #0 {565entry:566  br label %for.body567 568; VF_2-LABEL:  Checking a loop in 'f32_factor_3'569; VF_2:          Found an estimated cost of 16 for VF 2 For instruction: %tmp3 = load float, ptr %tmp0, align 4570; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: %tmp4 = load float, ptr %tmp1, align 4571; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: %tmp5 = load float, ptr %tmp2, align 4572; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: store float %tmp3, ptr %tmp0, align 4573; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: store float %tmp4, ptr %tmp1, align 4574; VF_2-NEXT:     Found an estimated cost of 16 for VF 2 For instruction: store float %tmp5, ptr %tmp2, align 4575; VF_4-LABEL:  Checking a loop in 'f32_factor_3'576; VF_4:          Found an estimated cost of 8 for VF 4 For instruction: %tmp3 = load float, ptr %tmp0, align 4577; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: %tmp4 = load float, ptr %tmp1, align 4578; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: %tmp5 = load float, ptr %tmp2, align 4579; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store float %tmp3, ptr %tmp0, align 4580; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store float %tmp4, ptr %tmp1, align 4581; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store float %tmp5, ptr %tmp2, align 4582; VF_8-LABEL:  Checking a loop in 'f32_factor_3'583; VF_8:          Found an estimated cost of 64 for VF 8 For instruction: %tmp3 = load float, ptr %tmp0, align 4584; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: %tmp4 = load float, ptr %tmp1, align 4585; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: %tmp5 = load float, ptr %tmp2, align 4586; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: store float %tmp3, ptr %tmp0, align 4587; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: store float %tmp4, ptr %tmp1, align 4588; VF_8-NEXT:     Found an estimated cost of 64 for VF 8 For instruction: store float %tmp5, ptr %tmp2, align 4589; VF_16-LABEL: Checking a loop in 'f32_factor_3'590; VF_16:         Found an estimated cost of 128 for VF 16 For instruction: %tmp3 = load float, ptr %tmp0, align 4591; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: %tmp4 = load float, ptr %tmp1, align 4592; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: %tmp5 = load float, ptr %tmp2, align 4593; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: store float %tmp3, ptr %tmp0, align 4594; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: store float %tmp4, ptr %tmp1, align 4595; VF_16-NEXT:    Found an estimated cost of 128 for VF 16 For instruction: store float %tmp5, ptr %tmp2, align 4596for.body:597  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]598  %tmp0 = getelementptr inbounds %f32.3, ptr %data, i64 %i, i32 0599  %tmp1 = getelementptr inbounds %f32.3, ptr %data, i64 %i, i32 1600  %tmp2 = getelementptr inbounds %f32.3, ptr %data, i64 %i, i32 2601  %tmp3 = load float, ptr %tmp0, align 4602  %tmp4 = load float, ptr %tmp1, align 4603  %tmp5 = load float, ptr %tmp2, align 4604  store float %tmp3, ptr %tmp0, align 4605  store float %tmp4, ptr %tmp1, align 4606  store float %tmp5, ptr %tmp2, align 4607  %i.next = add nuw nsw i64 %i, 1608  %cond = icmp slt i64 %i.next, %n609  br i1 %cond, label %for.body, label %for.end610 611for.end:612  ret void613}614 615%f64.3 = type {double, double, double}616define void @f64_factor_3(ptr %data, i64 %n) #0 {617entry:618  br label %for.body619 620; VF_2-LABEL:  Checking a loop in 'f64_factor_3'621; VF_2:          Found an estimated cost of 6 for VF 2 For instruction: %tmp3 = load double, ptr %tmp0, align 8622; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: %tmp4 = load double, ptr %tmp1, align 8623; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: %tmp5 = load double, ptr %tmp2, align 8624; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store double %tmp3, ptr %tmp0, align 8625; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store double %tmp4, ptr %tmp1, align 8626; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store double %tmp5, ptr %tmp2, align 8627; VF_4-LABEL:  Checking a loop in 'f64_factor_3'628; VF_4:          Found an estimated cost of 12 for VF 4 For instruction: %tmp3 = load double, ptr %tmp0, align 8629; VF_4-NEXT:     Found an estimated cost of 12 for VF 4 For instruction: %tmp4 = load double, ptr %tmp1, align 8630; VF_4-NEXT:     Found an estimated cost of 12 for VF 4 For instruction: %tmp5 = load double, ptr %tmp2, align 8631; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store double %tmp3, ptr %tmp0, align 8632; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store double %tmp4, ptr %tmp1, align 8633; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store double %tmp5, ptr %tmp2, align 8634; VF_8-LABEL:  Checking a loop in 'f64_factor_3'635; VF_8:          Found an estimated cost of 24 for VF 8 For instruction: %tmp3 = load double, ptr %tmp0, align 8636; VF_8-NEXT:     Found an estimated cost of 24 for VF 8 For instruction: %tmp4 = load double, ptr %tmp1, align 8637; VF_8-NEXT:     Found an estimated cost of 24 for VF 8 For instruction: %tmp5 = load double, ptr %tmp2, align 8638; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store double %tmp3, ptr %tmp0, align 8639; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store double %tmp4, ptr %tmp1, align 8640; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store double %tmp5, ptr %tmp2, align 8641; VF_16-LABEL: Checking a loop in 'f64_factor_3'642; VF_16:         Found an estimated cost of 48 for VF 16 For instruction: %tmp3 = load double, ptr %tmp0, align 8643; VF_16-NEXT:    Found an estimated cost of 48 for VF 16 For instruction: %tmp4 = load double, ptr %tmp1, align 8644; VF_16-NEXT:    Found an estimated cost of 48 for VF 16 For instruction: %tmp5 = load double, ptr %tmp2, align 8645; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store double %tmp3, ptr %tmp0, align 8646; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store double %tmp4, ptr %tmp1, align 8647; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store double %tmp5, ptr %tmp2, align 8648for.body:649  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]650  %tmp0 = getelementptr inbounds %f64.3, ptr %data, i64 %i, i32 0651  %tmp1 = getelementptr inbounds %f64.3, ptr %data, i64 %i, i32 1652  %tmp2 = getelementptr inbounds %f64.3, ptr %data, i64 %i, i32 2653  %tmp3 = load double, ptr %tmp0, align 8654  %tmp4 = load double, ptr %tmp1, align 8655  %tmp5 = load double, ptr %tmp2, align 8656  store double %tmp3, ptr %tmp0, align 8657  store double %tmp4, ptr %tmp1, align 8658  store double %tmp5, ptr %tmp2, align 8659  %i.next = add nuw nsw i64 %i, 1660  %cond = icmp slt i64 %i.next, %n661  br i1 %cond, label %for.body, label %for.end662 663for.end:664  ret void665}666 667 668; Factor 4669 670%i8.4 = type {i8, i8, i8, i8}671define void @i8_factor_4(ptr %data, i64 %n) #0 {672entry:673  br label %for.body674 675; VF_2-LABEL:  Checking a loop in 'i8_factor_4'676; VF_2:          Found an estimated cost of 12 for VF 2 For instruction: %tmp4 = load i8, ptr %tmp0, align 1677; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp5 = load i8, ptr %tmp1, align 1678; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp6 = load i8, ptr %tmp2, align 1679; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp7 = load i8, ptr %tmp3, align 1680; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i8 %tmp4, ptr %tmp0, align 1681; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i8 %tmp5, ptr %tmp1, align 1682; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i8 %tmp6, ptr %tmp2, align 1683; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i8 %tmp7, ptr %tmp3, align 1684; VF_4-LABEL: Checking a loop in 'i8_factor_4'685; VF_4:         Found an estimated cost of 24 for VF 4 For instruction: %tmp4 = load i8, ptr %tmp0, align 1686; VF_4-NEXT:    Found an estimated cost of 24 for VF 4 For instruction: %tmp5 = load i8, ptr %tmp1, align 1687; VF_4-NEXT:    Found an estimated cost of 24 for VF 4 For instruction: %tmp6 = load i8, ptr %tmp2, align 1688; VF_4-NEXT:    Found an estimated cost of 24 for VF 4 For instruction: %tmp7 = load i8, ptr %tmp3, align 1689; VF_4-NEXT:    Found an estimated cost of 8 for VF 4 For instruction: store i8 %tmp4, ptr %tmp0, align 1690; VF_4-NEXT:    Found an estimated cost of 8 for VF 4 For instruction: store i8 %tmp5, ptr %tmp1, align 1691; VF_4-NEXT:    Found an estimated cost of 8 for VF 4 For instruction: store i8 %tmp6, ptr %tmp2, align 1692; VF_4-NEXT:    Found an estimated cost of 8 for VF 4 For instruction: store i8 %tmp7, ptr %tmp3, align 1693; VF_8-LABEL:  Checking a loop in 'i8_factor_4'694; VF_8:          Found an estimated cost of 48 for VF 8 For instruction: %tmp4 = load i8, ptr %tmp0, align 1695; VF_8-NEXT:     Found an estimated cost of 48 for VF 8 For instruction: %tmp5 = load i8, ptr %tmp1, align 1696; VF_8-NEXT:     Found an estimated cost of 48 for VF 8 For instruction: %tmp6 = load i8, ptr %tmp2, align 1697; VF_8-NEXT:     Found an estimated cost of 48 for VF 8 For instruction: %tmp7 = load i8, ptr %tmp3, align 1698; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i8 %tmp4, ptr %tmp0, align 1699; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i8 %tmp5, ptr %tmp1, align 1700; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i8 %tmp6, ptr %tmp2, align 1701; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i8 %tmp7, ptr %tmp3, align 1702; VF_16-LABEL: Checking a loop in 'i8_factor_4'703; VF_16:         Found an estimated cost of 96 for VF 16 For instruction: %tmp4 = load i8, ptr %tmp0, align 1704; VF_16-NEXT:    Found an estimated cost of 96 for VF 16 For instruction: %tmp5 = load i8, ptr %tmp1, align 1705; VF_16-NEXT:    Found an estimated cost of 96 for VF 16 For instruction: %tmp6 = load i8, ptr %tmp2, align 1706; VF_16-NEXT:    Found an estimated cost of 96 for VF 16 For instruction: %tmp7 = load i8, ptr %tmp3, align 1707; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i8 %tmp4, ptr %tmp0, align 1708; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i8 %tmp5, ptr %tmp1, align 1709; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i8 %tmp6, ptr %tmp2, align 1710; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i8 %tmp7, ptr %tmp3, align 1711for.body:712  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]713  %tmp0 = getelementptr inbounds %i8.4, ptr %data, i64 %i, i32 0714  %tmp1 = getelementptr inbounds %i8.4, ptr %data, i64 %i, i32 1715  %tmp2 = getelementptr inbounds %i8.4, ptr %data, i64 %i, i32 2716  %tmp3 = getelementptr inbounds %i8.4, ptr %data, i64 %i, i32 3717  %tmp4 = load i8, ptr %tmp0, align 1718  %tmp5 = load i8, ptr %tmp1, align 1719  %tmp6 = load i8, ptr %tmp2, align 1720  %tmp7 = load i8, ptr %tmp3, align 1721  store i8 %tmp4, ptr %tmp0, align 1722  store i8 %tmp5, ptr %tmp1, align 1723  store i8 %tmp6, ptr %tmp2, align 1724  store i8 %tmp7, ptr %tmp3, align 1725  %i.next = add nuw nsw i64 %i, 1726  %cond = icmp slt i64 %i.next, %n727  br i1 %cond, label %for.body, label %for.end728 729for.end:730  ret void731}732 733%i16.4 = type {i16, i16, i16, i16}734define void @i16_factor_4(ptr %data, i64 %n) #0 {735entry:736  br label %for.body737 738; VF_2-LABEL:  Checking a loop in 'i16_factor_4'739; VF_2:          Found an estimated cost of 12 for VF 2 For instruction: %tmp4 = load i16, ptr %tmp0, align 2740; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp5 = load i16, ptr %tmp1, align 2741; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp6 = load i16, ptr %tmp2, align 2742; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp7 = load i16, ptr %tmp3, align 2743; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i16 %tmp4, ptr %tmp0, align 2744; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i16 %tmp5, ptr %tmp1, align 2745; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i16 %tmp6, ptr %tmp2, align 2746; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i16 %tmp7, ptr %tmp3, align 2747; VF_4-LABEL:  Checking a loop in 'i16_factor_4'748; VF_4:          Found an estimated cost of 24 for VF 4 For instruction: %tmp4 = load i16, ptr %tmp0, align 2749; VF_4-NEXT:     Found an estimated cost of 24 for VF 4 For instruction: %tmp5 = load i16, ptr %tmp1, align 2750; VF_4-NEXT:     Found an estimated cost of 24 for VF 4 For instruction: %tmp6 = load i16, ptr %tmp2, align 2751; VF_4-NEXT:     Found an estimated cost of 24 for VF 4 For instruction: %tmp7 = load i16, ptr %tmp3, align 2752; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i16 %tmp4, ptr %tmp0, align 2753; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i16 %tmp5, ptr %tmp1, align 2754; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i16 %tmp6, ptr %tmp2, align 2755; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i16 %tmp7, ptr %tmp3, align 2756; VF_8-LABEL:  Checking a loop in 'i16_factor_4'757; VF_8:          Found an estimated cost of 48 for VF 8 For instruction: %tmp4 = load i16, ptr %tmp0, align 2758; VF_8-NEXT:     Found an estimated cost of 48 for VF 8 For instruction: %tmp5 = load i16, ptr %tmp1, align 2759; VF_8-NEXT:     Found an estimated cost of 48 for VF 8 For instruction: %tmp6 = load i16, ptr %tmp2, align 2760; VF_8-NEXT:     Found an estimated cost of 48 for VF 8 For instruction: %tmp7 = load i16, ptr %tmp3, align 2761; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i16 %tmp4, ptr %tmp0, align 2762; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i16 %tmp5, ptr %tmp1, align 2763; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i16 %tmp6, ptr %tmp2, align 2764; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i16 %tmp7, ptr %tmp3, align 2765; VF_16-LABEL: Checking a loop in 'i16_factor_4'766; VF_16:         Found an estimated cost of 96 for VF 16 For instruction: %tmp4 = load i16, ptr %tmp0, align 2767; VF_16-NEXT:    Found an estimated cost of 96 for VF 16 For instruction: %tmp5 = load i16, ptr %tmp1, align 2768; VF_16-NEXT:    Found an estimated cost of 96 for VF 16 For instruction: %tmp6 = load i16, ptr %tmp2, align 2769; VF_16-NEXT:    Found an estimated cost of 96 for VF 16 For instruction: %tmp7 = load i16, ptr %tmp3, align 2770; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i16 %tmp4, ptr %tmp0, align 2771; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i16 %tmp5, ptr %tmp1, align 2772; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i16 %tmp6, ptr %tmp2, align 2773; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i16 %tmp7, ptr %tmp3, align 2774for.body:775  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]776  %tmp0 = getelementptr inbounds %i16.4, ptr %data, i64 %i, i32 0777  %tmp1 = getelementptr inbounds %i16.4, ptr %data, i64 %i, i32 1778  %tmp2 = getelementptr inbounds %i16.4, ptr %data, i64 %i, i32 2779  %tmp3 = getelementptr inbounds %i16.4, ptr %data, i64 %i, i32 3780  %tmp4 = load i16, ptr %tmp0, align 2781  %tmp5 = load i16, ptr %tmp1, align 2782  %tmp6 = load i16, ptr %tmp2, align 2783  %tmp7 = load i16, ptr %tmp3, align 2784  store i16 %tmp4, ptr %tmp0, align 2785  store i16 %tmp5, ptr %tmp1, align 2786  store i16 %tmp6, ptr %tmp2, align 2787  store i16 %tmp7, ptr %tmp3, align 2788  %i.next = add nuw nsw i64 %i, 1789  %cond = icmp slt i64 %i.next, %n790  br i1 %cond, label %for.body, label %for.end791 792for.end:793  ret void794}795 796%i32.4 = type {i32, i32, i32, i32}797define void @i32_factor_4(ptr %data, i64 %n) #0 {798entry:799  br label %for.body800 801; VF_2-LABEL:  Checking a loop in 'i32_factor_4'802; VF_2:          Found an estimated cost of 12 for VF 2 For instruction: %tmp4 = load i32, ptr %tmp0, align 4803; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp5 = load i32, ptr %tmp1, align 4804; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp6 = load i32, ptr %tmp2, align 4805; VF_2-NEXT:     Found an estimated cost of 12 for VF 2 For instruction: %tmp7 = load i32, ptr %tmp3, align 4806; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i32 %tmp4, ptr %tmp0, align 4807; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i32 %tmp5, ptr %tmp1, align 4808; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i32 %tmp6, ptr %tmp2, align 4809; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store i32 %tmp7, ptr %tmp3, align 4810; VF_4-LABEL:  Checking a loop in 'i32_factor_4'811; VF_4:          Found an estimated cost of 8 for VF 4 For instruction: %tmp4 = load i32, ptr %tmp0, align 4812; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: %tmp5 = load i32, ptr %tmp1, align 4813; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: %tmp6 = load i32, ptr %tmp2, align 4814; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: %tmp7 = load i32, ptr %tmp3, align 4815; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i32 %tmp4, ptr %tmp0, align 4816; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i32 %tmp5, ptr %tmp1, align 4817; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i32 %tmp6, ptr %tmp2, align 4818; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store i32 %tmp7, ptr %tmp3, align 4819; VF_8-LABEL:  Checking a loop in 'i32_factor_4'820; VF_8:          Found an estimated cost of 48 for VF 8 For instruction: %tmp4 = load i32, ptr %tmp0, align 4821; VF_8-NEXT:     Found an estimated cost of 48 for VF 8 For instruction: %tmp5 = load i32, ptr %tmp1, align 4822; VF_8-NEXT:     Found an estimated cost of 48 for VF 8 For instruction: %tmp6 = load i32, ptr %tmp2, align 4823; VF_8-NEXT:     Found an estimated cost of 48 for VF 8 For instruction: %tmp7 = load i32, ptr %tmp3, align 4824; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i32 %tmp4, ptr %tmp0, align 4825; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i32 %tmp5, ptr %tmp1, align 4826; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i32 %tmp6, ptr %tmp2, align 4827; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store i32 %tmp7, ptr %tmp3, align 4828; VF_16-LABEL: Checking a loop in 'i32_factor_4'829; VF_16:         Found an estimated cost of 96 for VF 16 For instruction: %tmp4 = load i32, ptr %tmp0, align 4830; VF_16-NEXT:    Found an estimated cost of 96 for VF 16 For instruction: %tmp5 = load i32, ptr %tmp1, align 4831; VF_16-NEXT:    Found an estimated cost of 96 for VF 16 For instruction: %tmp6 = load i32, ptr %tmp2, align 4832; VF_16-NEXT:    Found an estimated cost of 96 for VF 16 For instruction: %tmp7 = load i32, ptr %tmp3, align 4833; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i32 %tmp4, ptr %tmp0, align 4834; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i32 %tmp5, ptr %tmp1, align 4835; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i32 %tmp6, ptr %tmp2, align 4836; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store i32 %tmp7, ptr %tmp3, align 4837for.body:838  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]839  %tmp0 = getelementptr inbounds %i32.4, ptr %data, i64 %i, i32 0840  %tmp1 = getelementptr inbounds %i32.4, ptr %data, i64 %i, i32 1841  %tmp2 = getelementptr inbounds %i32.4, ptr %data, i64 %i, i32 2842  %tmp3 = getelementptr inbounds %i32.4, ptr %data, i64 %i, i32 3843  %tmp4 = load i32, ptr %tmp0, align 4844  %tmp5 = load i32, ptr %tmp1, align 4845  %tmp6 = load i32, ptr %tmp2, align 4846  %tmp7 = load i32, ptr %tmp3, align 4847  store i32 %tmp4, ptr %tmp0, align 4848  store i32 %tmp5, ptr %tmp1, align 4849  store i32 %tmp6, ptr %tmp2, align 4850  store i32 %tmp7, ptr %tmp3, align 4851  %i.next = add nuw nsw i64 %i, 1852  %cond = icmp slt i64 %i.next, %n853  br i1 %cond, label %for.body, label %for.end854 855for.end:856  ret void857}858 859%i64.4 = type {i64, i64, i64, i64}860define void @i64_factor_4(ptr %data, i64 %n) #0 {861entry:862  br label %for.body863 864; VF_2-LABEL:  Checking a loop in 'i64_factor_4'865; VF_2:          Found an estimated cost of 22 for VF 2 For instruction: %tmp4 = load i64, ptr %tmp0, align 8866; VF_2-NEXT:     Found an estimated cost of 22 for VF 2 For instruction: %tmp5 = load i64, ptr %tmp1, align 8867; VF_2-NEXT:     Found an estimated cost of 22 for VF 2 For instruction: %tmp6 = load i64, ptr %tmp2, align 8868; VF_2-NEXT:     Found an estimated cost of 22 for VF 2 For instruction: %tmp7 = load i64, ptr %tmp3, align 8869; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: store i64 %tmp4, ptr %tmp0, align 8870; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: store i64 %tmp5, ptr %tmp1, align 8871; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: store i64 %tmp6, ptr %tmp2, align 8872; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: store i64 %tmp7, ptr %tmp3, align 8873; VF_4-LABEL:  Checking a loop in 'i64_factor_4'874; VF_4:          Found an estimated cost of 44 for VF 4 For instruction: %tmp4 = load i64, ptr %tmp0, align 8875; VF_4-NEXT:     Found an estimated cost of 44 for VF 4 For instruction: %tmp5 = load i64, ptr %tmp1, align 8876; VF_4-NEXT:     Found an estimated cost of 44 for VF 4 For instruction: %tmp6 = load i64, ptr %tmp2, align 8877; VF_4-NEXT:     Found an estimated cost of 44 for VF 4 For instruction: %tmp7 = load i64, ptr %tmp3, align 8878; VF_4-NEXT:     Found an estimated cost of 12 for VF 4 For instruction: store i64 %tmp4, ptr %tmp0, align 8879; VF_4-NEXT:     Found an estimated cost of 12 for VF 4 For instruction: store i64 %tmp5, ptr %tmp1, align 8880; VF_4-NEXT:     Found an estimated cost of 12 for VF 4 For instruction: store i64 %tmp6, ptr %tmp2, align 8881; VF_4-NEXT:     Found an estimated cost of 12 for VF 4 For instruction: store i64 %tmp7, ptr %tmp3, align 8882; VF_8-LABEL:  Checking a loop in 'i64_factor_4'883; VF_8:          Found an estimated cost of 88 for VF 8 For instruction: %tmp4 = load i64, ptr %tmp0, align 8884; VF_8-NEXT:     Found an estimated cost of 88 for VF 8 For instruction: %tmp5 = load i64, ptr %tmp1, align 8885; VF_8-NEXT:     Found an estimated cost of 88 for VF 8 For instruction: %tmp6 = load i64, ptr %tmp2, align 8886; VF_8-NEXT:     Found an estimated cost of 88 for VF 8 For instruction: %tmp7 = load i64, ptr %tmp3, align 8887; VF_8-NEXT:     Found an estimated cost of 24 for VF 8 For instruction: store i64 %tmp4, ptr %tmp0, align 8888; VF_8-NEXT:     Found an estimated cost of 24 for VF 8 For instruction: store i64 %tmp5, ptr %tmp1, align 8889; VF_8-NEXT:     Found an estimated cost of 24 for VF 8 For instruction: store i64 %tmp6, ptr %tmp2, align 8890; VF_8-NEXT:     Found an estimated cost of 24 for VF 8 For instruction: store i64 %tmp7, ptr %tmp3, align 8891; VF_16-LABEL: Checking a loop in 'i64_factor_4'892; VF_16:         Found an estimated cost of 176 for VF 16 For instruction: %tmp4 = load i64, ptr %tmp0, align 8893; VF_16-NEXT:    Found an estimated cost of 176 for VF 16 For instruction: %tmp5 = load i64, ptr %tmp1, align 8894; VF_16-NEXT:    Found an estimated cost of 176 for VF 16 For instruction: %tmp6 = load i64, ptr %tmp2, align 8895; VF_16-NEXT:    Found an estimated cost of 176 for VF 16 For instruction: %tmp7 = load i64, ptr %tmp3, align 8896; VF_16-NEXT:    Found an estimated cost of 48 for VF 16 For instruction: store i64 %tmp4, ptr %tmp0, align 8897; VF_16-NEXT:    Found an estimated cost of 48 for VF 16 For instruction: store i64 %tmp5, ptr %tmp1, align 8898; VF_16-NEXT:    Found an estimated cost of 48 for VF 16 For instruction: store i64 %tmp6, ptr %tmp2, align 8899; VF_16-NEXT:    Found an estimated cost of 48 for VF 16 For instruction: store i64 %tmp7, ptr %tmp3, align 8900for.body:901  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]902  %tmp0 = getelementptr inbounds %i64.4, ptr %data, i64 %i, i32 0903  %tmp1 = getelementptr inbounds %i64.4, ptr %data, i64 %i, i32 1904  %tmp2 = getelementptr inbounds %i64.4, ptr %data, i64 %i, i32 2905  %tmp3 = getelementptr inbounds %i64.4, ptr %data, i64 %i, i32 3906  %tmp4 = load i64, ptr %tmp0, align 8907  %tmp5 = load i64, ptr %tmp1, align 8908  %tmp6 = load i64, ptr %tmp2, align 8909  %tmp7 = load i64, ptr %tmp3, align 8910  store i64 %tmp4, ptr %tmp0, align 8911  store i64 %tmp5, ptr %tmp1, align 8912  store i64 %tmp6, ptr %tmp2, align 8913  store i64 %tmp7, ptr %tmp3, align 8914  %i.next = add nuw nsw i64 %i, 1915  %cond = icmp slt i64 %i.next, %n916  br i1 %cond, label %for.body, label %for.end917 918for.end:919  ret void920}921 922%f16.4 = type {half, half, half, half}923define void @f16_factor_4(ptr %data, i64 %n) #0 {924entry:925  br label %for.body926 927; VF_2-LABEL:  Checking a loop in 'f16_factor_4'928; VF_2:          Found an estimated cost of 18 for VF 2 For instruction: %tmp4 = load half, ptr %tmp0, align 2929; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: %tmp5 = load half, ptr %tmp1, align 2930; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: %tmp6 = load half, ptr %tmp2, align 2931; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: %tmp7 = load half, ptr %tmp3, align 2932; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: store half %tmp4, ptr %tmp0, align 2933; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: store half %tmp5, ptr %tmp1, align 2934; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: store half %tmp6, ptr %tmp2, align 2935; VF_2-NEXT:     Found an estimated cost of 18 for VF 2 For instruction: store half %tmp7, ptr %tmp3, align 2936; VF_4-LABEL:  Checking a loop in 'f16_factor_4'937; VF_4:          Found an estimated cost of 36 for VF 4 For instruction: %tmp4 = load half, ptr %tmp0, align 2938; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: %tmp5 = load half, ptr %tmp1, align 2939; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: %tmp6 = load half, ptr %tmp2, align 2940; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: %tmp7 = load half, ptr %tmp3, align 2941; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: store half %tmp4, ptr %tmp0, align 2942; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: store half %tmp5, ptr %tmp1, align 2943; VF_4-NEXT:     Found an estimated cost of 0 for VF 4 For instruction: store half %tmp6, ptr %tmp2, align 2944; VF_4-NEXT:     Found an estimated cost of 36 for VF 4 For instruction: store half %tmp7, ptr %tmp3, align 2945; VF_8-LABEL:  Checking a loop in 'f16_factor_4'946; VF_8:          Found an estimated cost of 72 for VF 8 For instruction: %tmp4 = load half, ptr %tmp0, align 2947; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: %tmp5 = load half, ptr %tmp1, align 2948; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: %tmp6 = load half, ptr %tmp2, align 2949; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: %tmp7 = load half, ptr %tmp3, align 2950; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: store half %tmp4, ptr %tmp0, align 2951; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: store half %tmp5, ptr %tmp1, align 2952; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: store half %tmp6, ptr %tmp2, align 2953; VF_8-NEXT:     Found an estimated cost of 72 for VF 8 For instruction: store half %tmp7, ptr %tmp3, align 2954; VF_16-LABEL: Checking a loop in 'f16_factor_4'955; VF_16:         Found an estimated cost of 144 for VF 16 For instruction: %tmp4 = load half, ptr %tmp0, align 2956; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: %tmp5 = load half, ptr %tmp1, align 2957; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: %tmp6 = load half, ptr %tmp2, align 2958; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: %tmp7 = load half, ptr %tmp3, align 2959; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: store half %tmp4, ptr %tmp0, align 2960; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: store half %tmp5, ptr %tmp1, align 2961; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: store half %tmp6, ptr %tmp2, align 2962; VF_16-NEXT:    Found an estimated cost of 144 for VF 16 For instruction: store half %tmp7, ptr %tmp3, align 2963for.body:964  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]965  %tmp0 = getelementptr inbounds %f16.4, ptr %data, i64 %i, i32 0966  %tmp1 = getelementptr inbounds %f16.4, ptr %data, i64 %i, i32 1967  %tmp2 = getelementptr inbounds %f16.4, ptr %data, i64 %i, i32 2968  %tmp3 = getelementptr inbounds %f16.4, ptr %data, i64 %i, i32 3969  %tmp4 = load half, ptr %tmp0, align 2970  %tmp5 = load half, ptr %tmp1, align 2971  %tmp6 = load half, ptr %tmp2, align 2972  %tmp7 = load half, ptr %tmp3, align 2973  store half %tmp4, ptr %tmp0, align 2974  store half %tmp5, ptr %tmp1, align 2975  store half %tmp6, ptr %tmp2, align 2976  store half %tmp7, ptr %tmp3, align 2977  %i.next = add nuw nsw i64 %i, 1978  %cond = icmp slt i64 %i.next, %n979  br i1 %cond, label %for.body, label %for.end980 981for.end:982  ret void983}984 985%f32.4 = type {float, float, float, float}986define void @f32_factor_4(ptr %data, i64 %n) #0 {987entry:988  br label %for.body989 990; VF_2-LABEL:  Checking a loop in 'f32_factor_4'991; VF_2:          Found an estimated cost of 20 for VF 2 For instruction: %tmp4 = load float, ptr %tmp0, align 4992; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: %tmp5 = load float, ptr %tmp1, align 4993; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: %tmp6 = load float, ptr %tmp2, align 4994; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: %tmp7 = load float, ptr %tmp3, align 4995; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: store float %tmp4, ptr %tmp0, align 4996; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: store float %tmp5, ptr %tmp1, align 4997; VF_2-NEXT:     Found an estimated cost of 0 for VF 2 For instruction: store float %tmp6, ptr %tmp2, align 4998; VF_2-NEXT:     Found an estimated cost of 20 for VF 2 For instruction: store float %tmp7, ptr %tmp3, align 4999; VF_4-LABEL:  Checking a loop in 'f32_factor_4'1000; VF_4:          Found an estimated cost of 8 for VF 4 For instruction: %tmp4 = load float, ptr %tmp0, align 41001; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: %tmp5 = load float, ptr %tmp1, align 41002; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: %tmp6 = load float, ptr %tmp2, align 41003; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: %tmp7 = load float, ptr %tmp3, align 41004; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store float %tmp4, ptr %tmp0, align 41005; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store float %tmp5, ptr %tmp1, align 41006; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store float %tmp6, ptr %tmp2, align 41007; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store float %tmp7, ptr %tmp3, align 41008; VF_8-LABEL:  Checking a loop in 'f32_factor_4'1009; VF_8:          Found an estimated cost of 80 for VF 8 For instruction: %tmp4 = load float, ptr %tmp0, align 41010; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: %tmp5 = load float, ptr %tmp1, align 41011; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: %tmp6 = load float, ptr %tmp2, align 41012; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: %tmp7 = load float, ptr %tmp3, align 41013; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: store float %tmp4, ptr %tmp0, align 41014; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: store float %tmp5, ptr %tmp1, align 41015; VF_8-NEXT:     Found an estimated cost of 0 for VF 8 For instruction: store float %tmp6, ptr %tmp2, align 41016; VF_8-NEXT:     Found an estimated cost of 80 for VF 8 For instruction: store float %tmp7, ptr %tmp3, align 41017; VF_16-LABEL: Checking a loop in 'f32_factor_4'1018; VF_16:         Found an estimated cost of 160 for VF 16 For instruction: %tmp4 = load float, ptr %tmp0, align 41019; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: %tmp5 = load float, ptr %tmp1, align 41020; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: %tmp6 = load float, ptr %tmp2, align 41021; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: %tmp7 = load float, ptr %tmp3, align 41022; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: store float %tmp4, ptr %tmp0, align 41023; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: store float %tmp5, ptr %tmp1, align 41024; VF_16-NEXT:    Found an estimated cost of 0 for VF 16 For instruction: store float %tmp6, ptr %tmp2, align 41025; VF_16-NEXT:    Found an estimated cost of 160 for VF 16 For instruction: store float %tmp7, ptr %tmp3, align 41026for.body:1027  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]1028  %tmp0 = getelementptr inbounds %f32.4, ptr %data, i64 %i, i32 01029  %tmp1 = getelementptr inbounds %f32.4, ptr %data, i64 %i, i32 11030  %tmp2 = getelementptr inbounds %f32.4, ptr %data, i64 %i, i32 21031  %tmp3 = getelementptr inbounds %f32.4, ptr %data, i64 %i, i32 31032  %tmp4 = load float, ptr %tmp0, align 41033  %tmp5 = load float, ptr %tmp1, align 41034  %tmp6 = load float, ptr %tmp2, align 41035  %tmp7 = load float, ptr %tmp3, align 41036  store float %tmp4, ptr %tmp0, align 41037  store float %tmp5, ptr %tmp1, align 41038  store float %tmp6, ptr %tmp2, align 41039  store float %tmp7, ptr %tmp3, align 41040  %i.next = add nuw nsw i64 %i, 11041  %cond = icmp slt i64 %i.next, %n1042  br i1 %cond, label %for.body, label %for.end1043 1044for.end:1045  ret void1046}1047 1048%f64.4 = type {double, double, double, double}1049define void @f64_factor_4(ptr %data, i64 %n) #0 {1050entry:1051  br label %for.body1052 1053; VF_2-LABEL:  Checking a loop in 'f64_factor_4'1054; VF_2:          Found an estimated cost of 6 for VF 2 For instruction: %tmp4 = load double, ptr %tmp0, align 81055; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: %tmp5 = load double, ptr %tmp1, align 81056; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: %tmp6 = load double, ptr %tmp2, align 81057; VF_2-NEXT:     Found an estimated cost of 6 for VF 2 For instruction: %tmp7 = load double, ptr %tmp3, align 81058; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store double %tmp4, ptr %tmp0, align 81059; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store double %tmp5, ptr %tmp1, align 81060; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store double %tmp6, ptr %tmp2, align 81061; VF_2-NEXT:     Found an estimated cost of 4 for VF 2 For instruction: store double %tmp7, ptr %tmp3, align 81062; VF_4-LABEL:  Checking a loop in 'f64_factor_4'1063; VF_4:          Found an estimated cost of 12 for VF 4 For instruction: %tmp4 = load double, ptr %tmp0, align 81064; VF_4-NEXT:     Found an estimated cost of 12 for VF 4 For instruction: %tmp5 = load double, ptr %tmp1, align 81065; VF_4-NEXT:     Found an estimated cost of 12 for VF 4 For instruction: %tmp6 = load double, ptr %tmp2, align 81066; VF_4-NEXT:     Found an estimated cost of 12 for VF 4 For instruction: %tmp7 = load double, ptr %tmp3, align 81067; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store double %tmp4, ptr %tmp0, align 81068; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store double %tmp5, ptr %tmp1, align 81069; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store double %tmp6, ptr %tmp2, align 81070; VF_4-NEXT:     Found an estimated cost of 8 for VF 4 For instruction: store double %tmp7, ptr %tmp3, align 81071; VF_8-LABEL:  Checking a loop in 'f64_factor_4'1072; VF_8:          Found an estimated cost of 24 for VF 8 For instruction: %tmp4 = load double, ptr %tmp0, align 81073; VF_8-NEXT:     Found an estimated cost of 24 for VF 8 For instruction: %tmp5 = load double, ptr %tmp1, align 81074; VF_8-NEXT:     Found an estimated cost of 24 for VF 8 For instruction: %tmp6 = load double, ptr %tmp2, align 81075; VF_8-NEXT:     Found an estimated cost of 24 for VF 8 For instruction: %tmp7 = load double, ptr %tmp3, align 81076; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store double %tmp4, ptr %tmp0, align 81077; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store double %tmp5, ptr %tmp1, align 81078; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store double %tmp6, ptr %tmp2, align 81079; VF_8-NEXT:     Found an estimated cost of 16 for VF 8 For instruction: store double %tmp7, ptr %tmp3, align 81080; VF_16-LABEL: Checking a loop in 'f64_factor_4'1081; VF_16:         Found an estimated cost of 48 for VF 16 For instruction: %tmp4 = load double, ptr %tmp0, align 81082; VF_16-NEXT:    Found an estimated cost of 48 for VF 16 For instruction: %tmp5 = load double, ptr %tmp1, align 81083; VF_16-NEXT:    Found an estimated cost of 48 for VF 16 For instruction: %tmp6 = load double, ptr %tmp2, align 81084; VF_16-NEXT:    Found an estimated cost of 48 for VF 16 For instruction: %tmp7 = load double, ptr %tmp3, align 81085; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store double %tmp4, ptr %tmp0, align 81086; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store double %tmp5, ptr %tmp1, align 81087; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store double %tmp6, ptr %tmp2, align 81088; VF_16-NEXT:    Found an estimated cost of 32 for VF 16 For instruction: store double %tmp7, ptr %tmp3, align 81089for.body:1090  %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]1091  %tmp0 = getelementptr inbounds %f64.4, ptr %data, i64 %i, i32 01092  %tmp1 = getelementptr inbounds %f64.4, ptr %data, i64 %i, i32 11093  %tmp2 = getelementptr inbounds %f64.4, ptr %data, i64 %i, i32 21094  %tmp3 = getelementptr inbounds %f64.4, ptr %data, i64 %i, i32 31095  %tmp4 = load double, ptr %tmp0, align 81096  %tmp5 = load double, ptr %tmp1, align 81097  %tmp6 = load double, ptr %tmp2, align 81098  %tmp7 = load double, ptr %tmp3, align 81099  store double %tmp4, ptr %tmp0, align 81100  store double %tmp5, ptr %tmp1, align 81101  store double %tmp6, ptr %tmp2, align 81102  store double %tmp7, ptr %tmp3, align 81103  %i.next = add nuw nsw i64 %i, 11104  %cond = icmp slt i64 %i.next, %n1105  br i1 %cond, label %for.body, label %for.end1106 1107for.end:1108  ret void1109}1110 1111attributes #0 = { "target-features"="+mve.fp" }1112