; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py ; RUN: opt -passes="print" -cost-kind=all 2>&1 -disable-output -mtriple=thumbv8.1m.main-none-eabi -mattr=+mve < %s | FileCheck %s --check-prefixes=CHECK,CHECK-UF2 ; RUN: opt -passes="print" -cost-kind=all 2>&1 -disable-output -mtriple=thumbv8.1m.main-none-eabi -mattr=+mve.fp < %s | FileCheck %s --check-prefixes=CHECK,CHECK-UF2 ; RUN: opt -passes="print" -cost-kind=all 2>&1 -disable-output -mtriple=thumbv8.1m.main-none-eabi -mattr=+mve -mve-max-interleave-factor=4 < %s | FileCheck %s --check-prefixes=CHECK,CHECK-UF4 ; RUN: opt -passes="print" -cost-kind=all 2>&1 -disable-output -mtriple=thumbv8.1m.main-none-eabi -mattr=+mve.fp -mve-max-interleave-factor=4 < %s | FileCheck %s --check-prefixes=CHECK,CHECK-UF4 define void @vld2(ptr %p) { ; CHECK-LABEL: 'vld2' ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %v4i8 = load <4 x i8>, ptr %p, align 4 ; CHECK-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v4i8_0 = shufflevector <4 x i8> %v4i8, <4 x i8> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v4i8_1 = shufflevector <4 x i8> %v4i8, <4 x i8> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %v8i8 = load <8 x i8>, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v8i8_0 = shufflevector <8 x i8> %v8i8, <8 x i8> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v8i8_1 = shufflevector <8 x i8> %v8i8, <8 x i8> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %v16i8 = load <16 x i8>, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of RThru:130 CodeSize:65 Lat:130 SizeLat:130 for: %v16i8_0 = shufflevector <16 x i8> %v16i8, <16 x i8> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:130 CodeSize:65 Lat:130 SizeLat:130 for: %v16i8_1 = shufflevector <16 x i8> %v16i8, <16 x i8> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %v32i8 = load <32 x i8>, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of RThru:258 CodeSize:129 Lat:258 SizeLat:258 for: %v32i8_0 = shufflevector <32 x i8> %v32i8, <32 x i8> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:258 CodeSize:129 Lat:258 SizeLat:258 for: %v32i8_1 = shufflevector <32 x i8> %v32i8, <32 x i8> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %v4i16 = load <4 x i16>, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v4i16_0 = shufflevector <4 x i16> %v4i16, <4 x i16> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v4i16_1 = shufflevector <4 x i16> %v4i16, <4 x i16> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %v8i16 = load <8 x i16>, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v8i16_0 = shufflevector <8 x i16> %v8i16, <8 x i16> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v8i16_1 = shufflevector <8 x i16> %v8i16, <8 x i16> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %v16i16 = load <16 x i16>, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of RThru:130 CodeSize:65 Lat:130 SizeLat:130 for: %v16i16_0 = shufflevector <16 x i16> %v16i16, <16 x i16> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:130 CodeSize:65 Lat:130 SizeLat:130 for: %v16i16_1 = shufflevector <16 x i16> %v16i16, <16 x i16> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %v32i16 = load <32 x i16>, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of RThru:258 CodeSize:129 Lat:258 SizeLat:258 for: %v32i16_0 = shufflevector <32 x i16> %v32i16, <32 x i16> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:258 CodeSize:129 Lat:258 SizeLat:258 for: %v32i16_1 = shufflevector <32 x i16> %v32i16, <32 x i16> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %v4i32 = load <4 x i32>, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v4i32_0 = shufflevector <4 x i32> %v4i32, <4 x i32> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v4i32_1 = shufflevector <4 x i32> %v4i32, <4 x i32> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %v8i32 = load <8 x i32>, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v8i32_0 = shufflevector <8 x i32> %v8i32, <8 x i32> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v8i32_1 = shufflevector <8 x i32> %v8i32, <8 x i32> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %v16i32 = load <16 x i32>, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of RThru:130 CodeSize:65 Lat:130 SizeLat:130 for: %v16i32_0 = shufflevector <16 x i32> %v16i32, <16 x i32> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:130 CodeSize:65 Lat:130 SizeLat:130 for: %v16i32_1 = shufflevector <16 x i32> %v16i32, <16 x i32> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %v32i32 = load <32 x i32>, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of RThru:260 CodeSize:130 Lat:260 SizeLat:260 for: %v32i32_0 = shufflevector <32 x i32> %v32i32, <32 x i32> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:260 CodeSize:130 Lat:260 SizeLat:260 for: %v32i32_1 = shufflevector <32 x i32> %v32i32, <32 x i32> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %v2i64 = load <4 x i64>, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of RThru:192 CodeSize:96 Lat:192 SizeLat:192 for: %v2i64_0 = shufflevector <4 x i64> %v2i64, <4 x i64> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:192 CodeSize:96 Lat:192 SizeLat:192 for: %v2i64_1 = shufflevector <4 x i64> %v2i64, <4 x i64> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %v4i64 = load <8 x i64>, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of RThru:384 CodeSize:192 Lat:384 SizeLat:384 for: %v4i64_0 = shufflevector <8 x i64> %v4i64, <8 x i64> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:384 CodeSize:192 Lat:384 SizeLat:384 for: %v4i64_1 = shufflevector <8 x i64> %v4i64, <8 x i64> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %v8i64 = load <16 x i64>, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of RThru:768 CodeSize:384 Lat:768 SizeLat:768 for: %v8i64_0 = shufflevector <16 x i64> %v8i64, <16 x i64> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:768 CodeSize:384 Lat:768 SizeLat:768 for: %v8i64_1 = shufflevector <16 x i64> %v8i64, <16 x i64> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:32 CodeSize:1 Lat:4 SizeLat:1 for: %v16i64 = load <32 x i64>, ptr %p, align 256 ; CHECK-NEXT: Cost Model: Found costs of RThru:1536 CodeSize:768 Lat:1536 SizeLat:1536 for: %v16i64_0 = shufflevector <32 x i64> %v16i64, <32 x i64> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:1536 CodeSize:768 Lat:1536 SizeLat:1536 for: %v16i64_1 = shufflevector <32 x i64> %v16i64, <32 x i64> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %v4i8 = load <4 x i8>, ptr %p %v4i8_0 = shufflevector <4 x i8> %v4i8, <4 x i8> undef, <2 x i32> %v4i8_1 = shufflevector <4 x i8> %v4i8, <4 x i8> undef, <2 x i32> %v8i8 = load <8 x i8>, ptr %p %v8i8_0 = shufflevector <8 x i8> %v8i8, <8 x i8> undef, <4 x i32> %v8i8_1 = shufflevector <8 x i8> %v8i8, <8 x i8> undef, <4 x i32> %v16i8 = load <16 x i8>, ptr %p %v16i8_0 = shufflevector <16 x i8> %v16i8, <16 x i8> undef, <8 x i32> %v16i8_1 = shufflevector <16 x i8> %v16i8, <16 x i8> undef, <8 x i32> %v32i8 = load <32 x i8>, ptr %p %v32i8_0 = shufflevector <32 x i8> %v32i8, <32 x i8> undef, <16 x i32> %v32i8_1 = shufflevector <32 x i8> %v32i8, <32 x i8> undef, <16 x i32> %v4i16 = load <4 x i16>, ptr %p %v4i16_0 = shufflevector <4 x i16> %v4i16, <4 x i16> undef, <2 x i32> %v4i16_1 = shufflevector <4 x i16> %v4i16, <4 x i16> undef, <2 x i32> %v8i16 = load <8 x i16>, ptr %p %v8i16_0 = shufflevector <8 x i16> %v8i16, <8 x i16> undef, <4 x i32> %v8i16_1 = shufflevector <8 x i16> %v8i16, <8 x i16> undef, <4 x i32> %v16i16 = load <16 x i16>, ptr %p %v16i16_0 = shufflevector <16 x i16> %v16i16, <16 x i16> undef, <8 x i32> %v16i16_1 = shufflevector <16 x i16> %v16i16, <16 x i16> undef, <8 x i32> %v32i16 = load <32 x i16>, ptr %p %v32i16_0 = shufflevector <32 x i16> %v32i16, <32 x i16> undef, <16 x i32> %v32i16_1 = shufflevector <32 x i16> %v32i16, <32 x i16> undef, <16 x i32> %v4i32 = load <4 x i32>, ptr %p %v4i32_0 = shufflevector <4 x i32> %v4i32, <4 x i32> undef, <2 x i32> %v4i32_1 = shufflevector <4 x i32> %v4i32, <4 x i32> undef, <2 x i32> %v8i32 = load <8 x i32>, ptr %p %v8i32_0 = shufflevector <8 x i32> %v8i32, <8 x i32> undef, <4 x i32> %v8i32_1 = shufflevector <8 x i32> %v8i32, <8 x i32> undef, <4 x i32> %v16i32 = load <16 x i32>, ptr %p %v16i32_0 = shufflevector <16 x i32> %v16i32, <16 x i32> undef, <8 x i32> %v16i32_1 = shufflevector <16 x i32> %v16i32, <16 x i32> undef, <8 x i32> %v32i32 = load <32 x i32>, ptr %p %v32i32_0 = shufflevector <32 x i32> %v32i32, <32 x i32> undef, <16 x i32> %v32i32_1 = shufflevector <32 x i32> %v32i32, <32 x i32> undef, <16 x i32> %v2i64 = load <4 x i64>, ptr %p %v2i64_0 = shufflevector <4 x i64> %v2i64, <4 x i64> undef, <2 x i32> %v2i64_1 = shufflevector <4 x i64> %v2i64, <4 x i64> undef, <2 x i32> %v4i64 = load <8 x i64>, ptr %p %v4i64_0 = shufflevector <8 x i64> %v4i64, <8 x i64> undef, <4 x i32> %v4i64_1 = shufflevector <8 x i64> %v4i64, <8 x i64> undef, <4 x i32> %v8i64 = load <16 x i64>, ptr %p %v8i64_0 = shufflevector <16 x i64> %v8i64, <16 x i64> undef, <8 x i32> %v8i64_1 = shufflevector <16 x i64> %v8i64, <16 x i64> undef, <8 x i32> %v16i64 = load <32 x i64>, ptr %p %v16i64_0 = shufflevector <32 x i64> %v16i64, <32 x i64> undef, <16 x i32> %v16i64_1 = shufflevector <32 x i64> %v16i64, <32 x i64> undef, <16 x i32> ret void } define void @vld3(ptr %p) { ; CHECK-LABEL: 'vld3' ; CHECK-NEXT: Cost Model: Found costs of RThru:50 CodeSize:1 Lat:4 SizeLat:1 for: %v2i8 = load <6 x i8>, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of RThru:128 CodeSize:64 Lat:128 SizeLat:128 for: %v2i8_0 = shufflevector <6 x i8> %v2i8, <6 x i8> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:128 CodeSize:64 Lat:128 SizeLat:128 for: %v2i8_1 = shufflevector <6 x i8> %v2i8, <6 x i8> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:128 CodeSize:64 Lat:128 SizeLat:128 for: %v2i8_2 = shufflevector <6 x i8> %v2i8, <6 x i8> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:98 CodeSize:1 Lat:4 SizeLat:1 for: %v4i8 = load <12 x i8>, ptr %p, align 16 ; CHECK-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v4i8_0 = shufflevector <12 x i8> %v4i8, <12 x i8> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v4i8_1 = shufflevector <12 x i8> %v4i8, <12 x i8> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v4i8_2 = shufflevector <12 x i8> %v4i8, <12 x i8> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %v8i8 = load <24 x i8>, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v8i8_0 = shufflevector <24 x i8> %v8i8, <24 x i8> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v8i8_1 = shufflevector <24 x i8> %v8i8, <24 x i8> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v8i8_2 = shufflevector <24 x i8> %v8i8, <24 x i8> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %v16i8 = load <48 x i8>, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v16i8_0 = shufflevector <48 x i8> %v16i8, <48 x i8> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v16i8_1 = shufflevector <48 x i8> %v16i8, <48 x i8> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v16i8_2 = shufflevector <48 x i8> %v16i8, <48 x i8> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:50 CodeSize:1 Lat:4 SizeLat:1 for: %v2i16 = load <6 x i16>, ptr %p, align 16 ; CHECK-NEXT: Cost Model: Found costs of RThru:128 CodeSize:64 Lat:128 SizeLat:128 for: %v2i16_0 = shufflevector <6 x i16> %v2i16, <6 x i16> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:128 CodeSize:64 Lat:128 SizeLat:128 for: %v2i16_1 = shufflevector <6 x i16> %v2i16, <6 x i16> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:128 CodeSize:64 Lat:128 SizeLat:128 for: %v2i16_2 = shufflevector <6 x i16> %v2i16, <6 x i16> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %v4i16 = load <12 x i16>, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v4i16_0 = shufflevector <12 x i16> %v4i16, <12 x i16> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v4i16_1 = shufflevector <12 x i16> %v4i16, <12 x i16> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v4i16_2 = shufflevector <12 x i16> %v4i16, <12 x i16> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %v8i16 = load <24 x i16>, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v8i16_0 = shufflevector <24 x i16> %v8i16, <24 x i16> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v8i16_1 = shufflevector <24 x i16> %v8i16, <24 x i16> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v8i16_2 = shufflevector <24 x i16> %v8i16, <24 x i16> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %v16i16 = load <48 x i16>, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v16i16_0 = shufflevector <48 x i16> %v16i16, <48 x i16> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v16i16_1 = shufflevector <48 x i16> %v16i16, <48 x i16> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v16i16_2 = shufflevector <48 x i16> %v16i16, <48 x i16> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %v2i32 = load <6 x i32>, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of RThru:128 CodeSize:64 Lat:128 SizeLat:128 for: %v2i32_0 = shufflevector <6 x i32> %v2i32, <6 x i32> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:128 CodeSize:64 Lat:128 SizeLat:128 for: %v2i32_1 = shufflevector <6 x i32> %v2i32, <6 x i32> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:128 CodeSize:64 Lat:128 SizeLat:128 for: %v2i32_2 = shufflevector <6 x i32> %v2i32, <6 x i32> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %v4i32 = load <12 x i32>, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v4i32_0 = shufflevector <12 x i32> %v4i32, <12 x i32> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v4i32_1 = shufflevector <12 x i32> %v4i32, <12 x i32> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v4i32_2 = shufflevector <12 x i32> %v4i32, <12 x i32> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %v8i32 = load <24 x i32>, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v8i32_0 = shufflevector <24 x i32> %v8i32, <24 x i32> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v8i32_1 = shufflevector <24 x i32> %v8i32, <24 x i32> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v8i32_2 = shufflevector <24 x i32> %v8i32, <24 x i32> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:32 CodeSize:1 Lat:4 SizeLat:1 for: %v16i32 = load <48 x i32>, ptr %p, align 256 ; CHECK-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v16i32_0 = shufflevector <48 x i32> %v16i32, <48 x i32> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v16i32_1 = shufflevector <48 x i32> %v16i32, <48 x i32> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v16i32_2 = shufflevector <48 x i32> %v16i32, <48 x i32> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %v2i64 = load <6 x i64>, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v2i64_0 = shufflevector <6 x i64> %v2i64, <6 x i64> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v2i64_1 = shufflevector <6 x i64> %v2i64, <6 x i64> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v2i64_2 = shufflevector <6 x i64> %v2i64, <6 x i64> undef, <2 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %v4i64 = load <12 x i64>, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v4i64_0 = shufflevector <12 x i64> %v4i64, <12 x i64> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v4i64_1 = shufflevector <12 x i64> %v4i64, <12 x i64> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v4i64_2 = shufflevector <12 x i64> %v4i64, <12 x i64> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:32 CodeSize:1 Lat:4 SizeLat:1 for: %v8i64 = load <24 x i64>, ptr %p, align 256 ; CHECK-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v8i64_0 = shufflevector <24 x i64> %v8i64, <24 x i64> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v8i64_1 = shufflevector <24 x i64> %v8i64, <24 x i64> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v8i64_2 = shufflevector <24 x i64> %v8i64, <24 x i64> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:64 CodeSize:1 Lat:4 SizeLat:1 for: %v16i64 = load <48 x i64>, ptr %p, align 512 ; CHECK-NEXT: Cost Model: Found costs of RThru:2048 CodeSize:1024 Lat:2048 SizeLat:2048 for: %v16i64_0 = shufflevector <48 x i64> %v16i64, <48 x i64> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2048 CodeSize:1024 Lat:2048 SizeLat:2048 for: %v16i64_1 = shufflevector <48 x i64> %v16i64, <48 x i64> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2048 CodeSize:1024 Lat:2048 SizeLat:2048 for: %v16i64_2 = shufflevector <48 x i64> %v16i64, <48 x i64> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %v2i8 = load <6 x i8>, ptr %p %v2i8_0 = shufflevector <6 x i8> %v2i8, <6 x i8> undef, <2 x i32> %v2i8_1 = shufflevector <6 x i8> %v2i8, <6 x i8> undef, <2 x i32> %v2i8_2 = shufflevector <6 x i8> %v2i8, <6 x i8> undef, <2 x i32> %v4i8 = load <12 x i8>, ptr %p %v4i8_0 = shufflevector <12 x i8> %v4i8, <12 x i8> undef, <4 x i32> %v4i8_1 = shufflevector <12 x i8> %v4i8, <12 x i8> undef, <4 x i32> %v4i8_2 = shufflevector <12 x i8> %v4i8, <12 x i8> undef, <4 x i32> %v8i8 = load <24 x i8>, ptr %p %v8i8_0 = shufflevector <24 x i8> %v8i8, <24 x i8> undef, <8 x i32> %v8i8_1 = shufflevector <24 x i8> %v8i8, <24 x i8> undef, <8 x i32> %v8i8_2 = shufflevector <24 x i8> %v8i8, <24 x i8> undef, <8 x i32> %v16i8 = load <48 x i8>, ptr %p %v16i8_0 = shufflevector <48 x i8> %v16i8, <48 x i8> undef, <16 x i32> %v16i8_1 = shufflevector <48 x i8> %v16i8, <48 x i8> undef, <16 x i32> %v16i8_2 = shufflevector <48 x i8> %v16i8, <48 x i8> undef, <16 x i32> %v2i16 = load <6 x i16>, ptr %p %v2i16_0 = shufflevector <6 x i16> %v2i16, <6 x i16> undef, <2 x i32> %v2i16_1 = shufflevector <6 x i16> %v2i16, <6 x i16> undef, <2 x i32> %v2i16_2 = shufflevector <6 x i16> %v2i16, <6 x i16> undef, <2 x i32> %v4i16 = load <12 x i16>, ptr %p %v4i16_0 = shufflevector <12 x i16> %v4i16, <12 x i16> undef, <4 x i32> %v4i16_1 = shufflevector <12 x i16> %v4i16, <12 x i16> undef, <4 x i32> %v4i16_2 = shufflevector <12 x i16> %v4i16, <12 x i16> undef, <4 x i32> %v8i16 = load <24 x i16>, ptr %p %v8i16_0 = shufflevector <24 x i16> %v8i16, <24 x i16> undef, <8 x i32> %v8i16_1 = shufflevector <24 x i16> %v8i16, <24 x i16> undef, <8 x i32> %v8i16_2 = shufflevector <24 x i16> %v8i16, <24 x i16> undef, <8 x i32> %v16i16 = load <48 x i16>, ptr %p %v16i16_0 = shufflevector <48 x i16> %v16i16, <48 x i16> undef, <16 x i32> %v16i16_1 = shufflevector <48 x i16> %v16i16, <48 x i16> undef, <16 x i32> %v16i16_2 = shufflevector <48 x i16> %v16i16, <48 x i16> undef, <16 x i32> %v2i32 = load <6 x i32>, ptr %p %v2i32_0 = shufflevector <6 x i32> %v2i32, <6 x i32> undef, <2 x i32> %v2i32_1 = shufflevector <6 x i32> %v2i32, <6 x i32> undef, <2 x i32> %v2i32_2 = shufflevector <6 x i32> %v2i32, <6 x i32> undef, <2 x i32> %v4i32 = load <12 x i32>, ptr %p %v4i32_0 = shufflevector <12 x i32> %v4i32, <12 x i32> undef, <4 x i32> %v4i32_1 = shufflevector <12 x i32> %v4i32, <12 x i32> undef, <4 x i32> %v4i32_2 = shufflevector <12 x i32> %v4i32, <12 x i32> undef, <4 x i32> %v8i32 = load <24 x i32>, ptr %p %v8i32_0 = shufflevector <24 x i32> %v8i32, <24 x i32> undef, <8 x i32> %v8i32_1 = shufflevector <24 x i32> %v8i32, <24 x i32> undef, <8 x i32> %v8i32_2 = shufflevector <24 x i32> %v8i32, <24 x i32> undef, <8 x i32> %v16i32 = load <48 x i32>, ptr %p %v16i32_0 = shufflevector <48 x i32> %v16i32, <48 x i32> undef, <16 x i32> %v16i32_1 = shufflevector <48 x i32> %v16i32, <48 x i32> undef, <16 x i32> %v16i32_2 = shufflevector <48 x i32> %v16i32, <48 x i32> undef, <16 x i32> %v2i64 = load <6 x i64>, ptr %p %v2i64_0 = shufflevector <6 x i64> %v2i64, <6 x i64> undef, <2 x i32> %v2i64_1 = shufflevector <6 x i64> %v2i64, <6 x i64> undef, <2 x i32> %v2i64_2 = shufflevector <6 x i64> %v2i64, <6 x i64> undef, <2 x i32> %v4i64 = load <12 x i64>, ptr %p %v4i64_0 = shufflevector <12 x i64> %v4i64, <12 x i64> undef, <4 x i32> %v4i64_1 = shufflevector <12 x i64> %v4i64, <12 x i64> undef, <4 x i32> %v4i64_2 = shufflevector <12 x i64> %v4i64, <12 x i64> undef, <4 x i32> %v8i64 = load <24 x i64>, ptr %p %v8i64_0 = shufflevector <24 x i64> %v8i64, <24 x i64> undef, <8 x i32> %v8i64_1 = shufflevector <24 x i64> %v8i64, <24 x i64> undef, <8 x i32> %v8i64_2 = shufflevector <24 x i64> %v8i64, <24 x i64> undef, <8 x i32> %v16i64 = load <48 x i64>, ptr %p %v16i64_0 = shufflevector <48 x i64> %v16i64, <48 x i64> undef, <16 x i32> %v16i64_1 = shufflevector <48 x i64> %v16i64, <48 x i64> undef, <16 x i32> %v16i64_2 = shufflevector <48 x i64> %v16i64, <48 x i64> undef, <16 x i32> ret void } define void @vld4(ptr %p) { ; CHECK-UF2-LABEL: 'vld4' ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %v2i8 = load <8 x i8>, ptr %p, align 8 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:160 CodeSize:80 Lat:160 SizeLat:160 for: %v2i8_0 = shufflevector <8 x i8> %v2i8, <8 x i8> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:160 CodeSize:80 Lat:160 SizeLat:160 for: %v2i8_1 = shufflevector <8 x i8> %v2i8, <8 x i8> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:160 CodeSize:80 Lat:160 SizeLat:160 for: %v2i8_2 = shufflevector <8 x i8> %v2i8, <8 x i8> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:160 CodeSize:80 Lat:160 SizeLat:160 for: %v2i8_3 = shufflevector <8 x i8> %v2i8, <8 x i8> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %v4i8 = load <16 x i8>, ptr %p, align 8 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v4i8_0 = shufflevector <16 x i8> %v4i8, <16 x i8> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v4i8_1 = shufflevector <16 x i8> %v4i8, <16 x i8> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v4i8_2 = shufflevector <16 x i8> %v4i8, <16 x i8> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v4i8_3 = shufflevector <16 x i8> %v4i8, <16 x i8> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %v8i8 = load <32 x i8>, ptr %p, align 32 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v8i8_0 = shufflevector <32 x i8> %v8i8, <32 x i8> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v8i8_1 = shufflevector <32 x i8> %v8i8, <32 x i8> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v8i8_2 = shufflevector <32 x i8> %v8i8, <32 x i8> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v8i8_3 = shufflevector <32 x i8> %v8i8, <32 x i8> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %v16i8 = load <64 x i8>, ptr %p, align 64 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v16i8_0 = shufflevector <64 x i8> %v16i8, <64 x i8> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v16i8_1 = shufflevector <64 x i8> %v16i8, <64 x i8> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v16i8_2 = shufflevector <64 x i8> %v16i8, <64 x i8> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v16i8_3 = shufflevector <64 x i8> %v16i8, <64 x i8> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %v2i16 = load <8 x i16>, ptr %p, align 8 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:160 CodeSize:80 Lat:160 SizeLat:160 for: %v2i16_0 = shufflevector <8 x i16> %v2i16, <8 x i16> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:160 CodeSize:80 Lat:160 SizeLat:160 for: %v2i16_1 = shufflevector <8 x i16> %v2i16, <8 x i16> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:160 CodeSize:80 Lat:160 SizeLat:160 for: %v2i16_2 = shufflevector <8 x i16> %v2i16, <8 x i16> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:160 CodeSize:80 Lat:160 SizeLat:160 for: %v2i16_3 = shufflevector <8 x i16> %v2i16, <8 x i16> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %v4i16 = load <16 x i16>, ptr %p, align 32 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v4i16_0 = shufflevector <16 x i16> %v4i16, <16 x i16> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v4i16_1 = shufflevector <16 x i16> %v4i16, <16 x i16> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v4i16_2 = shufflevector <16 x i16> %v4i16, <16 x i16> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v4i16_3 = shufflevector <16 x i16> %v4i16, <16 x i16> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %v8i16 = load <32 x i16>, ptr %p, align 64 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v8i16_0 = shufflevector <32 x i16> %v8i16, <32 x i16> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v8i16_1 = shufflevector <32 x i16> %v8i16, <32 x i16> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v8i16_2 = shufflevector <32 x i16> %v8i16, <32 x i16> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v8i16_3 = shufflevector <32 x i16> %v8i16, <32 x i16> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %v16i16 = load <64 x i16>, ptr %p, align 128 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v16i16_0 = shufflevector <64 x i16> %v16i16, <64 x i16> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v16i16_1 = shufflevector <64 x i16> %v16i16, <64 x i16> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v16i16_2 = shufflevector <64 x i16> %v16i16, <64 x i16> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v16i16_3 = shufflevector <64 x i16> %v16i16, <64 x i16> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %v2i32 = load <8 x i32>, ptr %p, align 32 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:160 CodeSize:80 Lat:160 SizeLat:160 for: %v2i32_0 = shufflevector <8 x i32> %v2i32, <8 x i32> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:160 CodeSize:80 Lat:160 SizeLat:160 for: %v2i32_1 = shufflevector <8 x i32> %v2i32, <8 x i32> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:160 CodeSize:80 Lat:160 SizeLat:160 for: %v2i32_2 = shufflevector <8 x i32> %v2i32, <8 x i32> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:160 CodeSize:80 Lat:160 SizeLat:160 for: %v2i32_3 = shufflevector <8 x i32> %v2i32, <8 x i32> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %v4i32 = load <16 x i32>, ptr %p, align 64 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v4i32_0 = shufflevector <16 x i32> %v4i32, <16 x i32> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v4i32_1 = shufflevector <16 x i32> %v4i32, <16 x i32> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v4i32_2 = shufflevector <16 x i32> %v4i32, <16 x i32> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v4i32_3 = shufflevector <16 x i32> %v4i32, <16 x i32> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %v8i32 = load <32 x i32>, ptr %p, align 128 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v8i32_0 = shufflevector <32 x i32> %v8i32, <32 x i32> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v8i32_1 = shufflevector <32 x i32> %v8i32, <32 x i32> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v8i32_2 = shufflevector <32 x i32> %v8i32, <32 x i32> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v8i32_3 = shufflevector <32 x i32> %v8i32, <32 x i32> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:32 CodeSize:1 Lat:4 SizeLat:1 for: %v16i32 = load <64 x i32>, ptr %p, align 256 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v16i32_0 = shufflevector <64 x i32> %v16i32, <64 x i32> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v16i32_1 = shufflevector <64 x i32> %v16i32, <64 x i32> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v16i32_2 = shufflevector <64 x i32> %v16i32, <64 x i32> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v16i32_3 = shufflevector <64 x i32> %v16i32, <64 x i32> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %v2i64 = load <8 x i64>, ptr %p, align 64 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v2i64_0 = shufflevector <8 x i64> %v2i64, <8 x i64> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v2i64_1 = shufflevector <8 x i64> %v2i64, <8 x i64> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v2i64_2 = shufflevector <8 x i64> %v2i64, <8 x i64> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v2i64_3 = shufflevector <8 x i64> %v2i64, <8 x i64> undef, <2 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %v4i64 = load <16 x i64>, ptr %p, align 128 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v4i64_0 = shufflevector <16 x i64> %v4i64, <16 x i64> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v4i64_1 = shufflevector <16 x i64> %v4i64, <16 x i64> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v4i64_2 = shufflevector <16 x i64> %v4i64, <16 x i64> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v4i64_3 = shufflevector <16 x i64> %v4i64, <16 x i64> undef, <4 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:32 CodeSize:1 Lat:4 SizeLat:1 for: %v8i64 = load <32 x i64>, ptr %p, align 256 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v8i64_0 = shufflevector <32 x i64> %v8i64, <32 x i64> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v8i64_1 = shufflevector <32 x i64> %v8i64, <32 x i64> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v8i64_2 = shufflevector <32 x i64> %v8i64, <32 x i64> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v8i64_3 = shufflevector <32 x i64> %v8i64, <32 x i64> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:64 CodeSize:1 Lat:4 SizeLat:1 for: %v16i64 = load <64 x i64>, ptr %p, align 512 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:2560 CodeSize:1280 Lat:2560 SizeLat:2560 for: %v16i64_0 = shufflevector <64 x i64> %v16i64, <64 x i64> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:2560 CodeSize:1280 Lat:2560 SizeLat:2560 for: %v16i64_1 = shufflevector <64 x i64> %v16i64, <64 x i64> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:2560 CodeSize:1280 Lat:2560 SizeLat:2560 for: %v16i64_2 = shufflevector <64 x i64> %v16i64, <64 x i64> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:2560 CodeSize:1280 Lat:2560 SizeLat:2560 for: %v16i64_3 = shufflevector <64 x i64> %v16i64, <64 x i64> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; CHECK-UF4-LABEL: 'vld4' ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %v2i8 = load <8 x i8>, ptr %p, align 8 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v2i8_0 = shufflevector <8 x i8> %v2i8, <8 x i8> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v2i8_1 = shufflevector <8 x i8> %v2i8, <8 x i8> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v2i8_2 = shufflevector <8 x i8> %v2i8, <8 x i8> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v2i8_3 = shufflevector <8 x i8> %v2i8, <8 x i8> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %v4i8 = load <16 x i8>, ptr %p, align 8 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v4i8_0 = shufflevector <16 x i8> %v4i8, <16 x i8> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v4i8_1 = shufflevector <16 x i8> %v4i8, <16 x i8> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v4i8_2 = shufflevector <16 x i8> %v4i8, <16 x i8> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v4i8_3 = shufflevector <16 x i8> %v4i8, <16 x i8> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %v8i8 = load <32 x i8>, ptr %p, align 32 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:130 CodeSize:65 Lat:130 SizeLat:130 for: %v8i8_0 = shufflevector <32 x i8> %v8i8, <32 x i8> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:130 CodeSize:65 Lat:130 SizeLat:130 for: %v8i8_1 = shufflevector <32 x i8> %v8i8, <32 x i8> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:130 CodeSize:65 Lat:130 SizeLat:130 for: %v8i8_2 = shufflevector <32 x i8> %v8i8, <32 x i8> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:130 CodeSize:65 Lat:130 SizeLat:130 for: %v8i8_3 = shufflevector <32 x i8> %v8i8, <32 x i8> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %v16i8 = load <64 x i8>, ptr %p, align 64 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:258 CodeSize:129 Lat:258 SizeLat:258 for: %v16i8_0 = shufflevector <64 x i8> %v16i8, <64 x i8> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:258 CodeSize:129 Lat:258 SizeLat:258 for: %v16i8_1 = shufflevector <64 x i8> %v16i8, <64 x i8> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:258 CodeSize:129 Lat:258 SizeLat:258 for: %v16i8_2 = shufflevector <64 x i8> %v16i8, <64 x i8> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:258 CodeSize:129 Lat:258 SizeLat:258 for: %v16i8_3 = shufflevector <64 x i8> %v16i8, <64 x i8> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:4 SizeLat:1 for: %v2i16 = load <8 x i16>, ptr %p, align 8 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v2i16_0 = shufflevector <8 x i16> %v2i16, <8 x i16> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v2i16_1 = shufflevector <8 x i16> %v2i16, <8 x i16> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v2i16_2 = shufflevector <8 x i16> %v2i16, <8 x i16> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v2i16_3 = shufflevector <8 x i16> %v2i16, <8 x i16> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %v4i16 = load <16 x i16>, ptr %p, align 32 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v4i16_0 = shufflevector <16 x i16> %v4i16, <16 x i16> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v4i16_1 = shufflevector <16 x i16> %v4i16, <16 x i16> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v4i16_2 = shufflevector <16 x i16> %v4i16, <16 x i16> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v4i16_3 = shufflevector <16 x i16> %v4i16, <16 x i16> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %v8i16 = load <32 x i16>, ptr %p, align 64 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:130 CodeSize:65 Lat:130 SizeLat:130 for: %v8i16_0 = shufflevector <32 x i16> %v8i16, <32 x i16> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:130 CodeSize:65 Lat:130 SizeLat:130 for: %v8i16_1 = shufflevector <32 x i16> %v8i16, <32 x i16> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:130 CodeSize:65 Lat:130 SizeLat:130 for: %v8i16_2 = shufflevector <32 x i16> %v8i16, <32 x i16> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:130 CodeSize:65 Lat:130 SizeLat:130 for: %v8i16_3 = shufflevector <32 x i16> %v8i16, <32 x i16> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %v16i16 = load <64 x i16>, ptr %p, align 128 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:260 CodeSize:130 Lat:260 SizeLat:260 for: %v16i16_0 = shufflevector <64 x i16> %v16i16, <64 x i16> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:260 CodeSize:130 Lat:260 SizeLat:260 for: %v16i16_1 = shufflevector <64 x i16> %v16i16, <64 x i16> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:260 CodeSize:130 Lat:260 SizeLat:260 for: %v16i16_2 = shufflevector <64 x i16> %v16i16, <64 x i16> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:260 CodeSize:130 Lat:260 SizeLat:260 for: %v16i16_3 = shufflevector <64 x i16> %v16i16, <64 x i16> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:4 SizeLat:1 for: %v2i32 = load <8 x i32>, ptr %p, align 32 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v2i32_0 = shufflevector <8 x i32> %v2i32, <8 x i32> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v2i32_1 = shufflevector <8 x i32> %v2i32, <8 x i32> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v2i32_2 = shufflevector <8 x i32> %v2i32, <8 x i32> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:34 CodeSize:17 Lat:34 SizeLat:34 for: %v2i32_3 = shufflevector <8 x i32> %v2i32, <8 x i32> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %v4i32 = load <16 x i32>, ptr %p, align 64 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v4i32_0 = shufflevector <16 x i32> %v4i32, <16 x i32> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v4i32_1 = shufflevector <16 x i32> %v4i32, <16 x i32> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v4i32_2 = shufflevector <16 x i32> %v4i32, <16 x i32> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:66 CodeSize:33 Lat:66 SizeLat:66 for: %v4i32_3 = shufflevector <16 x i32> %v4i32, <16 x i32> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %v8i32 = load <32 x i32>, ptr %p, align 128 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:132 CodeSize:66 Lat:132 SizeLat:132 for: %v8i32_0 = shufflevector <32 x i32> %v8i32, <32 x i32> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:132 CodeSize:66 Lat:132 SizeLat:132 for: %v8i32_1 = shufflevector <32 x i32> %v8i32, <32 x i32> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:132 CodeSize:66 Lat:132 SizeLat:132 for: %v8i32_2 = shufflevector <32 x i32> %v8i32, <32 x i32> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:132 CodeSize:66 Lat:132 SizeLat:132 for: %v8i32_3 = shufflevector <32 x i32> %v8i32, <32 x i32> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:32 CodeSize:1 Lat:4 SizeLat:1 for: %v16i32 = load <64 x i32>, ptr %p, align 256 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:264 CodeSize:132 Lat:264 SizeLat:264 for: %v16i32_0 = shufflevector <64 x i32> %v16i32, <64 x i32> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:264 CodeSize:132 Lat:264 SizeLat:264 for: %v16i32_1 = shufflevector <64 x i32> %v16i32, <64 x i32> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:264 CodeSize:132 Lat:264 SizeLat:264 for: %v16i32_2 = shufflevector <64 x i32> %v16i32, <64 x i32> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:264 CodeSize:132 Lat:264 SizeLat:264 for: %v16i32_3 = shufflevector <64 x i32> %v16i32, <64 x i32> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:4 SizeLat:1 for: %v2i64 = load <8 x i64>, ptr %p, align 64 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v2i64_0 = shufflevector <8 x i64> %v2i64, <8 x i64> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v2i64_1 = shufflevector <8 x i64> %v2i64, <8 x i64> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v2i64_2 = shufflevector <8 x i64> %v2i64, <8 x i64> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:320 CodeSize:160 Lat:320 SizeLat:320 for: %v2i64_3 = shufflevector <8 x i64> %v2i64, <8 x i64> undef, <2 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:4 SizeLat:1 for: %v4i64 = load <16 x i64>, ptr %p, align 128 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v4i64_0 = shufflevector <16 x i64> %v4i64, <16 x i64> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v4i64_1 = shufflevector <16 x i64> %v4i64, <16 x i64> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v4i64_2 = shufflevector <16 x i64> %v4i64, <16 x i64> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:640 CodeSize:320 Lat:640 SizeLat:640 for: %v4i64_3 = shufflevector <16 x i64> %v4i64, <16 x i64> undef, <4 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:32 CodeSize:1 Lat:4 SizeLat:1 for: %v8i64 = load <32 x i64>, ptr %p, align 256 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v8i64_0 = shufflevector <32 x i64> %v8i64, <32 x i64> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v8i64_1 = shufflevector <32 x i64> %v8i64, <32 x i64> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v8i64_2 = shufflevector <32 x i64> %v8i64, <32 x i64> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:1280 CodeSize:640 Lat:1280 SizeLat:1280 for: %v8i64_3 = shufflevector <32 x i64> %v8i64, <32 x i64> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:64 CodeSize:1 Lat:4 SizeLat:1 for: %v16i64 = load <64 x i64>, ptr %p, align 512 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:2560 CodeSize:1280 Lat:2560 SizeLat:2560 for: %v16i64_0 = shufflevector <64 x i64> %v16i64, <64 x i64> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:2560 CodeSize:1280 Lat:2560 SizeLat:2560 for: %v16i64_1 = shufflevector <64 x i64> %v16i64, <64 x i64> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:2560 CodeSize:1280 Lat:2560 SizeLat:2560 for: %v16i64_2 = shufflevector <64 x i64> %v16i64, <64 x i64> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:2560 CodeSize:1280 Lat:2560 SizeLat:2560 for: %v16i64_3 = shufflevector <64 x i64> %v16i64, <64 x i64> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %v2i8 = load <8 x i8>, ptr %p %v2i8_0 = shufflevector <8 x i8> %v2i8, <8 x i8> undef, <2 x i32> %v2i8_1 = shufflevector <8 x i8> %v2i8, <8 x i8> undef, <2 x i32> %v2i8_2 = shufflevector <8 x i8> %v2i8, <8 x i8> undef, <2 x i32> %v2i8_3 = shufflevector <8 x i8> %v2i8, <8 x i8> undef, <2 x i32> %v4i8 = load <16 x i8>, ptr %p %v4i8_0 = shufflevector <16 x i8> %v4i8, <16 x i8> undef, <4 x i32> %v4i8_1 = shufflevector <16 x i8> %v4i8, <16 x i8> undef, <4 x i32> %v4i8_2 = shufflevector <16 x i8> %v4i8, <16 x i8> undef, <4 x i32> %v4i8_3 = shufflevector <16 x i8> %v4i8, <16 x i8> undef, <4 x i32> %v8i8 = load <32 x i8>, ptr %p %v8i8_0 = shufflevector <32 x i8> %v8i8, <32 x i8> undef, <8 x i32> %v8i8_1 = shufflevector <32 x i8> %v8i8, <32 x i8> undef, <8 x i32> %v8i8_2 = shufflevector <32 x i8> %v8i8, <32 x i8> undef, <8 x i32> %v8i8_3 = shufflevector <32 x i8> %v8i8, <32 x i8> undef, <8 x i32> %v16i8 = load <64 x i8>, ptr %p %v16i8_0 = shufflevector <64 x i8> %v16i8, <64 x i8> undef, <16 x i32> %v16i8_1 = shufflevector <64 x i8> %v16i8, <64 x i8> undef, <16 x i32> %v16i8_2 = shufflevector <64 x i8> %v16i8, <64 x i8> undef, <16 x i32> %v16i8_3 = shufflevector <64 x i8> %v16i8, <64 x i8> undef, <16 x i32> %v2i16 = load <8 x i16>, ptr %p %v2i16_0 = shufflevector <8 x i16> %v2i16, <8 x i16> undef, <2 x i32> %v2i16_1 = shufflevector <8 x i16> %v2i16, <8 x i16> undef, <2 x i32> %v2i16_2 = shufflevector <8 x i16> %v2i16, <8 x i16> undef, <2 x i32> %v2i16_3 = shufflevector <8 x i16> %v2i16, <8 x i16> undef, <2 x i32> %v4i16 = load <16 x i16>, ptr %p %v4i16_0 = shufflevector <16 x i16> %v4i16, <16 x i16> undef, <4 x i32> %v4i16_1 = shufflevector <16 x i16> %v4i16, <16 x i16> undef, <4 x i32> %v4i16_2 = shufflevector <16 x i16> %v4i16, <16 x i16> undef, <4 x i32> %v4i16_3 = shufflevector <16 x i16> %v4i16, <16 x i16> undef, <4 x i32> %v8i16 = load <32 x i16>, ptr %p %v8i16_0 = shufflevector <32 x i16> %v8i16, <32 x i16> undef, <8 x i32> %v8i16_1 = shufflevector <32 x i16> %v8i16, <32 x i16> undef, <8 x i32> %v8i16_2 = shufflevector <32 x i16> %v8i16, <32 x i16> undef, <8 x i32> %v8i16_3 = shufflevector <32 x i16> %v8i16, <32 x i16> undef, <8 x i32> %v16i16 = load <64 x i16>, ptr %p %v16i16_0 = shufflevector <64 x i16> %v16i16, <64 x i16> undef, <16 x i32> %v16i16_1 = shufflevector <64 x i16> %v16i16, <64 x i16> undef, <16 x i32> %v16i16_2 = shufflevector <64 x i16> %v16i16, <64 x i16> undef, <16 x i32> %v16i16_3 = shufflevector <64 x i16> %v16i16, <64 x i16> undef, <16 x i32> %v2i32 = load <8 x i32>, ptr %p %v2i32_0 = shufflevector <8 x i32> %v2i32, <8 x i32> undef, <2 x i32> %v2i32_1 = shufflevector <8 x i32> %v2i32, <8 x i32> undef, <2 x i32> %v2i32_2 = shufflevector <8 x i32> %v2i32, <8 x i32> undef, <2 x i32> %v2i32_3 = shufflevector <8 x i32> %v2i32, <8 x i32> undef, <2 x i32> %v4i32 = load <16 x i32>, ptr %p %v4i32_0 = shufflevector <16 x i32> %v4i32, <16 x i32> undef, <4 x i32> %v4i32_1 = shufflevector <16 x i32> %v4i32, <16 x i32> undef, <4 x i32> %v4i32_2 = shufflevector <16 x i32> %v4i32, <16 x i32> undef, <4 x i32> %v4i32_3 = shufflevector <16 x i32> %v4i32, <16 x i32> undef, <4 x i32> %v8i32 = load <32 x i32>, ptr %p %v8i32_0 = shufflevector <32 x i32> %v8i32, <32 x i32> undef, <8 x i32> %v8i32_1 = shufflevector <32 x i32> %v8i32, <32 x i32> undef, <8 x i32> %v8i32_2 = shufflevector <32 x i32> %v8i32, <32 x i32> undef, <8 x i32> %v8i32_3 = shufflevector <32 x i32> %v8i32, <32 x i32> undef, <8 x i32> %v16i32 = load <64 x i32>, ptr %p %v16i32_0 = shufflevector <64 x i32> %v16i32, <64 x i32> undef, <16 x i32> %v16i32_1 = shufflevector <64 x i32> %v16i32, <64 x i32> undef, <16 x i32> %v16i32_2 = shufflevector <64 x i32> %v16i32, <64 x i32> undef, <16 x i32> %v16i32_3 = shufflevector <64 x i32> %v16i32, <64 x i32> undef, <16 x i32> %v2i64 = load <8 x i64>, ptr %p %v2i64_0 = shufflevector <8 x i64> %v2i64, <8 x i64> undef, <2 x i32> %v2i64_1 = shufflevector <8 x i64> %v2i64, <8 x i64> undef, <2 x i32> %v2i64_2 = shufflevector <8 x i64> %v2i64, <8 x i64> undef, <2 x i32> %v2i64_3 = shufflevector <8 x i64> %v2i64, <8 x i64> undef, <2 x i32> %v4i64 = load <16 x i64>, ptr %p %v4i64_0 = shufflevector <16 x i64> %v4i64, <16 x i64> undef, <4 x i32> %v4i64_1 = shufflevector <16 x i64> %v4i64, <16 x i64> undef, <4 x i32> %v4i64_2 = shufflevector <16 x i64> %v4i64, <16 x i64> undef, <4 x i32> %v4i64_3 = shufflevector <16 x i64> %v4i64, <16 x i64> undef, <4 x i32> %v8i64 = load <32 x i64>, ptr %p %v8i64_0 = shufflevector <32 x i64> %v8i64, <32 x i64> undef, <8 x i32> %v8i64_1 = shufflevector <32 x i64> %v8i64, <32 x i64> undef, <8 x i32> %v8i64_2 = shufflevector <32 x i64> %v8i64, <32 x i64> undef, <8 x i32> %v8i64_3 = shufflevector <32 x i64> %v8i64, <32 x i64> undef, <8 x i32> %v16i64 = load <64 x i64>, ptr %p %v16i64_0 = shufflevector <64 x i64> %v16i64, <64 x i64> undef, <16 x i32> %v16i64_1 = shufflevector <64 x i64> %v16i64, <64 x i64> undef, <16 x i32> %v16i64_2 = shufflevector <64 x i64> %v16i64, <64 x i64> undef, <16 x i32> %v16i64_3 = shufflevector <64 x i64> %v16i64, <64 x i64> undef, <16 x i32> ret void } define void @vst2(ptr %p) { ; CHECK-LABEL: 'vst2' ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v4i8 = shufflevector <2 x i8> undef, <2 x i8> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i8> %v4i8, ptr %p, align 4 ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v8i8 = shufflevector <4 x i8> undef, <4 x i8> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i8> %v8i8, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v16i8 = shufflevector <8 x i8> undef, <8 x i8> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i8> %v16i8, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:4 SizeLat:4 for: %v32i8 = shufflevector <16 x i8> undef, <16 x i8> undef, <32 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <32 x i8> %v32i8, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v4i16 = shufflevector <2 x i16> undef, <2 x i16> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i16> %v4i16, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v8i16 = shufflevector <4 x i16> undef, <4 x i16> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i16> %v8i16, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:4 SizeLat:4 for: %v16i16 = shufflevector <8 x i16> undef, <8 x i16> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i16> %v16i16, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:8 SizeLat:8 for: %v32i16 = shufflevector <16 x i16> undef, <16 x i16> undef, <32 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <32 x i16> %v32i16, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v4i32 = shufflevector <2 x i32> undef, <2 x i32> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i32> %v4i32, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:4 SizeLat:4 for: %v8i32 = shufflevector <4 x i32> undef, <4 x i32> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i32> %v8i32, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:8 SizeLat:8 for: %v16i32 = shufflevector <8 x i32> undef, <8 x i32> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i32> %v16i32, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:16 SizeLat:16 for: %v32i32 = shufflevector <16 x i32> undef, <16 x i32> undef, <32 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <32 x i32> %v32i32, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of RThru:128 CodeSize:64 Lat:128 SizeLat:128 for: %v4i64 = shufflevector <2 x i64> undef, <2 x i64> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <4 x i64> %v4i64, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v8i64 = shufflevector <4 x i64> undef, <4 x i64> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i64> %v8i64, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v16i64 = shufflevector <8 x i64> undef, <8 x i64> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i64> %v16i64, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v32i64 = shufflevector <16 x i64> undef, <16 x i64> undef, <32 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:32 CodeSize:1 Lat:1 SizeLat:1 for: store <32 x i64> %v32i64, ptr %p, align 256 ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %v4i8 = shufflevector <2 x i8> undef, <2 x i8> undef, <4 x i32> store <4 x i8> %v4i8, ptr %p %v8i8 = shufflevector <4 x i8> undef, <4 x i8> undef, <8 x i32> store <8 x i8> %v8i8, ptr %p %v16i8 = shufflevector <8 x i8> undef, <8 x i8> undef, <16 x i32> store <16 x i8> %v16i8, ptr %p %v32i8 = shufflevector <16 x i8> undef, <16 x i8> undef, <32 x i32> store <32 x i8> %v32i8, ptr %p %v4i16 = shufflevector <2 x i16> undef, <2 x i16> undef, <4 x i32> store <4 x i16> %v4i16, ptr %p %v8i16 = shufflevector <4 x i16> undef, <4 x i16> undef, <8 x i32> store <8 x i16> %v8i16, ptr %p %v16i16 = shufflevector <8 x i16> undef, <8 x i16> undef, <16 x i32> store <16 x i16> %v16i16, ptr %p %v32i16 = shufflevector <16 x i16> undef, <16 x i16> undef, <32 x i32> store <32 x i16> %v32i16, ptr %p %v4i32 = shufflevector <2 x i32> undef, <2 x i32> undef, <4 x i32> store <4 x i32> %v4i32, ptr %p %v8i32 = shufflevector <4 x i32> undef, <4 x i32> undef, <8 x i32> store <8 x i32> %v8i32, ptr %p %v16i32 = shufflevector <8 x i32> undef, <8 x i32> undef, <16 x i32> store <16 x i32> %v16i32, ptr %p %v32i32 = shufflevector <16 x i32> undef, <16 x i32> undef, <32 x i32> store <32 x i32> %v32i32, ptr %p %v4i64 = shufflevector <2 x i64> undef, <2 x i64> undef, <4 x i32> store <4 x i64> %v4i64, ptr %p %v8i64 = shufflevector <4 x i64> undef, <4 x i64> undef, <8 x i32> store <8 x i64> %v8i64, ptr %p %v16i64 = shufflevector <8 x i64> undef, <8 x i64> undef, <16 x i32> store <16 x i64> %v16i64, ptr %p %v32i64 = shufflevector <16 x i64> undef, <16 x i64> undef, <32 x i32> store <32 x i64> %v32i64, ptr %p ret void } define void @vst3(ptr %p) { ; CHECK-LABEL: 'vst3' ; CHECK-NEXT: Cost Model: Found costs of RThru:96 CodeSize:48 Lat:96 SizeLat:96 for: %v8i8 = shufflevector <4 x i8> undef, <4 x i8> undef, <6 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:50 CodeSize:1 Lat:1 SizeLat:1 for: store <6 x i8> %v8i8, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of RThru:192 CodeSize:96 Lat:192 SizeLat:192 for: %v16i8 = shufflevector <8 x i8> undef, <8 x i8> undef, <12 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:98 CodeSize:1 Lat:1 SizeLat:1 for: store <12 x i8> %v16i8, ptr %p, align 16 ; CHECK-NEXT: Cost Model: Found costs of RThru:384 CodeSize:192 Lat:384 SizeLat:384 for: %v32i8 = shufflevector <16 x i8> undef, <16 x i8> undef, <24 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <24 x i8> %v32i8, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of RThru:768 CodeSize:384 Lat:768 SizeLat:768 for: %v64i8 = shufflevector <32 x i8> undef, <32 x i8> undef, <48 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <48 x i8> %v64i8, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of RThru:96 CodeSize:48 Lat:96 SizeLat:96 for: %v8i16 = shufflevector <4 x i16> undef, <4 x i16> undef, <6 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:50 CodeSize:1 Lat:1 SizeLat:1 for: store <6 x i16> %v8i16, ptr %p, align 16 ; CHECK-NEXT: Cost Model: Found costs of RThru:192 CodeSize:96 Lat:192 SizeLat:192 for: %v16i16 = shufflevector <8 x i16> undef, <8 x i16> undef, <12 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <12 x i16> %v16i16, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of RThru:384 CodeSize:192 Lat:384 SizeLat:384 for: %v32i16 = shufflevector <16 x i16> undef, <16 x i16> undef, <24 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <24 x i16> %v32i16, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of RThru:768 CodeSize:384 Lat:768 SizeLat:768 for: %v64i16 = shufflevector <32 x i16> undef, <32 x i16> undef, <48 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <48 x i16> %v64i16, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of RThru:96 CodeSize:48 Lat:96 SizeLat:96 for: %v8i32 = shufflevector <4 x i32> undef, <4 x i32> undef, <6 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <6 x i32> %v8i32, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of RThru:192 CodeSize:96 Lat:192 SizeLat:192 for: %v16i32 = shufflevector <8 x i32> undef, <8 x i32> undef, <12 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <12 x i32> %v16i32, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of RThru:384 CodeSize:192 Lat:384 SizeLat:384 for: %v32i32 = shufflevector <16 x i32> undef, <16 x i32> undef, <24 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <24 x i32> %v32i32, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of RThru:768 CodeSize:384 Lat:768 SizeLat:768 for: %v64i32 = shufflevector <32 x i32> undef, <32 x i32> undef, <48 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:32 CodeSize:1 Lat:1 SizeLat:1 for: store <48 x i32> %v64i32, ptr %p, align 256 ; CHECK-NEXT: Cost Model: Found costs of RThru:192 CodeSize:96 Lat:192 SizeLat:192 for: %v8i64 = shufflevector <4 x i64> undef, <4 x i64> undef, <6 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <6 x i64> %v8i64, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of RThru:384 CodeSize:192 Lat:384 SizeLat:384 for: %v16i64 = shufflevector <8 x i64> undef, <8 x i64> undef, <12 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <12 x i64> %v16i64, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of RThru:768 CodeSize:384 Lat:768 SizeLat:768 for: %v32i64 = shufflevector <16 x i64> undef, <16 x i64> undef, <24 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:32 CodeSize:1 Lat:1 SizeLat:1 for: store <24 x i64> %v32i64, ptr %p, align 256 ; CHECK-NEXT: Cost Model: Found costs of RThru:1536 CodeSize:768 Lat:1536 SizeLat:1536 for: %v64i64 = shufflevector <32 x i64> undef, <32 x i64> undef, <48 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:64 CodeSize:1 Lat:1 SizeLat:1 for: store <48 x i64> %v64i64, ptr %p, align 512 ; CHECK-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %v8i8 = shufflevector <4 x i8> undef, <4 x i8> undef, <6 x i32> store <6 x i8> %v8i8, ptr %p %v16i8 = shufflevector <8 x i8> undef, <8 x i8> undef, <12 x i32> store <12 x i8> %v16i8, ptr %p %v32i8 = shufflevector <16 x i8> undef, <16 x i8> undef, <24 x i32> store <24 x i8> %v32i8, ptr %p %v64i8 = shufflevector <32 x i8> undef, <32 x i8> undef, <48 x i32> store <48 x i8> %v64i8, ptr %p %v8i16 = shufflevector <4 x i16> undef, <4 x i16> undef, <6 x i32> store <6 x i16> %v8i16, ptr %p %v16i16 = shufflevector <8 x i16> undef, <8 x i16> undef, <12 x i32> store <12 x i16> %v16i16, ptr %p %v32i16 = shufflevector <16 x i16> undef, <16 x i16> undef, <24 x i32> store <24 x i16> %v32i16, ptr %p %v64i16 = shufflevector <32 x i16> undef, <32 x i16> undef, <48 x i32> store <48 x i16> %v64i16, ptr %p %v8i32 = shufflevector <4 x i32> undef, <4 x i32> undef, <6 x i32> store <6 x i32> %v8i32, ptr %p %v16i32 = shufflevector <8 x i32> undef, <8 x i32> undef, <12 x i32> store <12 x i32> %v16i32, ptr %p %v32i32 = shufflevector <16 x i32> undef, <16 x i32> undef, <24 x i32> store <24 x i32> %v32i32, ptr %p %v64i32 = shufflevector <32 x i32> undef, <32 x i32> undef, <48 x i32> store <48 x i32> %v64i32, ptr %p %v8i64 = shufflevector <4 x i64> undef, <4 x i64> undef, <6 x i32> store <6 x i64> %v8i64, ptr %p %v16i64 = shufflevector <8 x i64> undef, <8 x i64> undef, <12 x i32> store <12 x i64> %v16i64, ptr %p %v32i64 = shufflevector <16 x i64> undef, <16 x i64> undef, <24 x i32> store <24 x i64> %v32i64, ptr %p %v64i64 = shufflevector <32 x i64> undef, <32 x i64> undef, <48 x i32> store <48 x i64> %v64i64, ptr %p ret void } define void @vst4(ptr %p) { ; CHECK-UF2-LABEL: 'vst4' ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:128 CodeSize:64 Lat:128 SizeLat:128 for: %v8i8 = shufflevector <8 x i8> undef, <8 x i8> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i8> %v8i8, ptr %p, align 8 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v16i8 = shufflevector <16 x i8> undef, <16 x i8> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i8> %v16i8, ptr %p, align 8 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v32i8 = shufflevector <32 x i8> undef, <32 x i8> undef, <32 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <32 x i8> %v32i8, ptr %p, align 32 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v64i8 = shufflevector <64 x i8> undef, <64 x i8> undef, <64 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <64 x i8> %v64i8, ptr %p, align 64 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:128 CodeSize:64 Lat:128 SizeLat:128 for: %v8i16 = shufflevector <8 x i16> undef, <8 x i16> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i16> %v8i16, ptr %p, align 8 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v16i16 = shufflevector <16 x i16> undef, <16 x i16> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i16> %v16i16, ptr %p, align 32 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v32i16 = shufflevector <32 x i16> undef, <32 x i16> undef, <32 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <32 x i16> %v32i16, ptr %p, align 64 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v64i16 = shufflevector <64 x i16> undef, <64 x i16> undef, <64 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <64 x i16> %v64i16, ptr %p, align 128 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:128 CodeSize:64 Lat:128 SizeLat:128 for: %v8i32 = shufflevector <8 x i32> undef, <8 x i32> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i32> %v8i32, ptr %p, align 32 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v16i32 = shufflevector <16 x i32> undef, <16 x i32> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i32> %v16i32, ptr %p, align 64 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v32i32 = shufflevector <32 x i32> undef, <32 x i32> undef, <32 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <32 x i32> %v32i32, ptr %p, align 128 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v64i32 = shufflevector <64 x i32> undef, <64 x i32> undef, <64 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:32 CodeSize:1 Lat:1 SizeLat:1 for: store <64 x i32> %v64i32, ptr %p, align 256 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v8i64 = shufflevector <8 x i64> undef, <8 x i64> undef, <8 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i64> %v8i64, ptr %p, align 64 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v16i64 = shufflevector <16 x i64> undef, <16 x i64> undef, <16 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i64> %v16i64, ptr %p, align 128 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v32i64 = shufflevector <32 x i64> undef, <32 x i64> undef, <32 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:32 CodeSize:1 Lat:1 SizeLat:1 for: store <32 x i64> %v32i64, ptr %p, align 256 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:2048 CodeSize:1024 Lat:2048 SizeLat:2048 for: %v64i64 = shufflevector <64 x i64> undef, <64 x i64> undef, <64 x i32> ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:64 CodeSize:1 Lat:1 SizeLat:1 for: store <64 x i64> %v64i64, ptr %p, align 512 ; CHECK-UF2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; CHECK-UF4-LABEL: 'vst4' ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v8i8 = shufflevector <8 x i8> undef, <8 x i8> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i8> %v8i8, ptr %p, align 8 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v16i8 = shufflevector <16 x i8> undef, <16 x i8> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i8> %v16i8, ptr %p, align 8 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:4 SizeLat:4 for: %v32i8 = shufflevector <32 x i8> undef, <32 x i8> undef, <32 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <32 x i8> %v32i8, ptr %p, align 32 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:8 SizeLat:8 for: %v64i8 = shufflevector <64 x i8> undef, <64 x i8> undef, <64 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <64 x i8> %v64i8, ptr %p, align 64 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %v8i16 = shufflevector <8 x i16> undef, <8 x i16> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i16> %v8i16, ptr %p, align 8 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:4 SizeLat:4 for: %v16i16 = shufflevector <16 x i16> undef, <16 x i16> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i16> %v16i16, ptr %p, align 32 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:8 SizeLat:8 for: %v32i16 = shufflevector <32 x i16> undef, <32 x i16> undef, <32 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <32 x i16> %v32i16, ptr %p, align 64 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:16 SizeLat:16 for: %v64i16 = shufflevector <64 x i16> undef, <64 x i16> undef, <64 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <64 x i16> %v64i16, ptr %p, align 128 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:4 CodeSize:2 Lat:4 SizeLat:4 for: %v8i32 = shufflevector <8 x i32> undef, <8 x i32> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i32> %v8i32, ptr %p, align 32 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:8 CodeSize:4 Lat:8 SizeLat:8 for: %v16i32 = shufflevector <16 x i32> undef, <16 x i32> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i32> %v16i32, ptr %p, align 64 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:16 CodeSize:8 Lat:16 SizeLat:16 for: %v32i32 = shufflevector <32 x i32> undef, <32 x i32> undef, <32 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <32 x i32> %v32i32, ptr %p, align 128 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:32 CodeSize:16 Lat:32 SizeLat:32 for: %v64i32 = shufflevector <64 x i32> undef, <64 x i32> undef, <64 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:32 CodeSize:1 Lat:1 SizeLat:1 for: store <64 x i32> %v64i32, ptr %p, align 256 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:256 CodeSize:128 Lat:256 SizeLat:256 for: %v8i64 = shufflevector <8 x i64> undef, <8 x i64> undef, <8 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:8 CodeSize:1 Lat:1 SizeLat:1 for: store <8 x i64> %v8i64, ptr %p, align 64 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:512 CodeSize:256 Lat:512 SizeLat:512 for: %v16i64 = shufflevector <16 x i64> undef, <16 x i64> undef, <16 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:16 CodeSize:1 Lat:1 SizeLat:1 for: store <16 x i64> %v16i64, ptr %p, align 128 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:1024 CodeSize:512 Lat:1024 SizeLat:1024 for: %v32i64 = shufflevector <32 x i64> undef, <32 x i64> undef, <32 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:32 CodeSize:1 Lat:1 SizeLat:1 for: store <32 x i64> %v32i64, ptr %p, align 256 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:2048 CodeSize:1024 Lat:2048 SizeLat:2048 for: %v64i64 = shufflevector <64 x i64> undef, <64 x i64> undef, <64 x i32> ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:64 CodeSize:1 Lat:1 SizeLat:1 for: store <64 x i64> %v64i64, ptr %p, align 512 ; CHECK-UF4-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %v8i8 = shufflevector <8 x i8> undef, <8 x i8> undef, <8 x i32> store <8 x i8> %v8i8, ptr %p %v16i8 = shufflevector <16 x i8> undef, <16 x i8> undef, <16 x i32> store <16 x i8> %v16i8, ptr %p %v32i8 = shufflevector <32 x i8> undef, <32 x i8> undef, <32 x i32> store <32 x i8> %v32i8, ptr %p %v64i8 = shufflevector <64 x i8> undef, <64 x i8> undef, <64 x i32> store <64 x i8> %v64i8, ptr %p %v8i16 = shufflevector <8 x i16> undef, <8 x i16> undef, <8 x i32> store <8 x i16> %v8i16, ptr %p %v16i16 = shufflevector <16 x i16> undef, <16 x i16> undef, <16 x i32> store <16 x i16> %v16i16, ptr %p %v32i16 = shufflevector <32 x i16> undef, <32 x i16> undef, <32 x i32> store <32 x i16> %v32i16, ptr %p %v64i16 = shufflevector <64 x i16> undef, <64 x i16> undef, <64 x i32> store <64 x i16> %v64i16, ptr %p %v8i32 = shufflevector <8 x i32> undef, <8 x i32> undef, <8 x i32> store <8 x i32> %v8i32, ptr %p %v16i32 = shufflevector <16 x i32> undef, <16 x i32> undef, <16 x i32> store <16 x i32> %v16i32, ptr %p %v32i32 = shufflevector <32 x i32> undef, <32 x i32> undef, <32 x i32> store <32 x i32> %v32i32, ptr %p %v64i32 = shufflevector <64 x i32> undef, <64 x i32> undef, <64 x i32> store <64 x i32> %v64i32, ptr %p %v8i64 = shufflevector <8 x i64> undef, <8 x i64> undef, <8 x i32> store <8 x i64> %v8i64, ptr %p %v16i64 = shufflevector <16 x i64> undef, <16 x i64> undef, <16 x i32> store <16 x i64> %v16i64, ptr %p %v32i64 = shufflevector <32 x i64> undef, <32 x i64> undef, <32 x i32> store <32 x i64> %v32i64, ptr %p %v64i64 = shufflevector <64 x i64> undef, <64 x i64> undef, <64 x i32> store <64 x i64> %v64i64, ptr %p ret void }