; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py ; RUN: opt < %s -mtriple=aarch64--linux-gnu -passes="print" -cost-kind=all 2>&1 -disable-output | FileCheck %s target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" define void @vst2(ptr %p) { ; CHECK-LABEL: 'vst2' ; CHECK-NEXT: Cost Model: Found costs of 1 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 1 for: %v8i8 = shufflevector <4 x i8> undef, <4 x i8> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <8 x i8> %v8i8, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v16i8 = shufflevector <8 x i8> undef, <8 x i8> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <16 x i8> %v16i8, ptr %p, align 16 ; CHECK-NEXT: Cost Model: Found costs of 2 for: %v32i8 = shufflevector <16 x i8> undef, <16 x i8> undef, <32 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:1 SizeLat:2 for: store <32 x i8> %v32i8, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v4i16 = shufflevector <2 x i16> undef, <2 x i16> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <4 x i16> %v4i16, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v8i16 = shufflevector <4 x i16> undef, <4 x i16> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <8 x i16> %v8i16, ptr %p, align 16 ; CHECK-NEXT: Cost Model: Found costs of 2 for: %v16i16 = shufflevector <8 x i16> undef, <8 x i16> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:1 SizeLat:2 for: store <16 x i16> %v16i16, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of 4 for: %v32i16 = shufflevector <16 x i16> undef, <16 x i16> undef, <32 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:1 SizeLat:4 for: store <32 x i16> %v32i16, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v4i32 = shufflevector <2 x i32> undef, <2 x i32> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <4 x i32> %v4i32, ptr %p, align 16 ; CHECK-NEXT: Cost Model: Found costs of 2 for: %v8i32 = shufflevector <4 x i32> undef, <4 x i32> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:1 SizeLat:2 for: store <8 x i32> %v8i32, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of 4 for: %v16i32 = shufflevector <8 x i32> undef, <8 x i32> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:1 SizeLat:4 for: store <16 x i32> %v16i32, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of 8 for: %v32i32 = shufflevector <16 x i32> undef, <16 x i32> undef, <32 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:1 SizeLat:8 for: store <32 x i32> %v32i32, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of 2 for: %v4i64 = shufflevector <2 x i64> undef, <2 x i64> undef, <4 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:1 SizeLat:2 for: store <4 x i64> %v4i64, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of 4 for: %v8i64 = shufflevector <4 x i64> undef, <4 x i64> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:1 SizeLat:4 for: store <8 x i64> %v8i64, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of 8 for: %v16i64 = shufflevector <8 x i64> undef, <8 x i64> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:1 SizeLat:8 for: store <16 x i64> %v16i64, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of 16 for: %v32i64 = shufflevector <16 x i64> undef, <16 x i64> undef, <32 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:1 SizeLat:16 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 8 for: %v8i8 = shufflevector <4 x i8> undef, <4 x i8> undef, <6 x i32> ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <6 x i8> %v8i8, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of 8 for: %v16i8 = shufflevector <8 x i8> undef, <8 x i8> undef, <12 x i32> ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <12 x i8> %v16i8, ptr %p, align 16 ; CHECK-NEXT: Cost Model: Found costs of 2 for: %v32i8 = shufflevector <16 x i8> undef, <16 x i8> undef, <24 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:1 SizeLat:2 for: store <24 x i8> %v32i8, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of 4 for: %v64i8 = shufflevector <32 x i8> undef, <32 x i8> undef, <48 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:1 SizeLat:4 for: store <48 x i8> %v64i8, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of 8 for: %v8i16 = shufflevector <4 x i16> undef, <4 x i16> undef, <6 x i32> ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <6 x i16> %v8i16, ptr %p, align 16 ; CHECK-NEXT: Cost Model: Found costs of 2 for: %v16i16 = shufflevector <8 x i16> undef, <8 x i16> undef, <12 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:1 SizeLat:2 for: store <12 x i16> %v16i16, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of 4 for: %v32i16 = shufflevector <16 x i16> undef, <16 x i16> undef, <24 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:1 SizeLat:4 for: store <24 x i16> %v32i16, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of 8 for: %v64i16 = shufflevector <32 x i16> undef, <32 x i16> undef, <48 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:1 SizeLat:8 for: store <48 x i16> %v64i16, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of 2 for: %v8i32 = shufflevector <4 x i32> undef, <4 x i32> undef, <6 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:1 SizeLat:2 for: store <6 x i32> %v8i32, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of 4 for: %v16i32 = shufflevector <8 x i32> undef, <8 x i32> undef, <12 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:1 SizeLat:4 for: store <12 x i32> %v16i32, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of 8 for: %v32i32 = shufflevector <16 x i32> undef, <16 x i32> undef, <24 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:1 SizeLat:8 for: store <24 x i32> %v32i32, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of 16 for: %v64i32 = shufflevector <32 x i32> undef, <32 x i32> undef, <48 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:1 SizeLat:16 for: store <48 x i32> %v64i32, ptr %p, align 256 ; CHECK-NEXT: Cost Model: Found costs of 4 for: %v8i64 = shufflevector <4 x i64> undef, <4 x i64> undef, <6 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:1 SizeLat:4 for: store <6 x i64> %v8i64, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of 8 for: %v16i64 = shufflevector <8 x i64> undef, <8 x i64> undef, <12 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:1 SizeLat:8 for: store <12 x i64> %v16i64, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of 16 for: %v32i64 = shufflevector <16 x i64> undef, <16 x i64> undef, <24 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:1 SizeLat:16 for: store <24 x i64> %v32i64, ptr %p, align 256 ; CHECK-NEXT: Cost Model: Found costs of 32 for: %v64i64 = shufflevector <32 x i64> undef, <32 x i64> undef, <48 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:32 CodeSize:32 Lat:1 SizeLat:32 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-LABEL: 'vst4' ; CHECK-NEXT: Cost Model: Found costs of 8 for: %v8i8 = shufflevector <8 x i8> undef, <8 x i8> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <8 x i8> %v8i8, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of 8 for: %v16i8 = shufflevector <16 x i8> undef, <16 x i8> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <16 x i8> %v16i8, ptr %p, align 16 ; CHECK-NEXT: Cost Model: Found costs of 2 for: %v32i8 = shufflevector <32 x i8> undef, <32 x i8> undef, <32 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:1 SizeLat:2 for: store <32 x i8> %v32i8, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of 4 for: %v64i8 = shufflevector <64 x i8> undef, <64 x i8> undef, <64 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:1 SizeLat:4 for: store <64 x i8> %v64i8, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of 8 for: %v8i16 = shufflevector <8 x i16> undef, <8 x i16> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <8 x i16> %v8i16, ptr %p, align 16 ; CHECK-NEXT: Cost Model: Found costs of 2 for: %v16i16 = shufflevector <16 x i16> undef, <16 x i16> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:1 SizeLat:2 for: store <16 x i16> %v16i16, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of 4 for: %v32i16 = shufflevector <32 x i16> undef, <32 x i16> undef, <32 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:1 SizeLat:4 for: store <32 x i16> %v32i16, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of 8 for: %v64i16 = shufflevector <64 x i16> undef, <64 x i16> undef, <64 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:1 SizeLat:8 for: store <64 x i16> %v64i16, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of 2 for: %v8i32 = shufflevector <8 x i32> undef, <8 x i32> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:1 SizeLat:2 for: store <8 x i32> %v8i32, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of 4 for: %v16i32 = shufflevector <16 x i32> undef, <16 x i32> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:1 SizeLat:4 for: store <16 x i32> %v16i32, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of 8 for: %v32i32 = shufflevector <32 x i32> undef, <32 x i32> undef, <32 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:1 SizeLat:8 for: store <32 x i32> %v32i32, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of 16 for: %v64i32 = shufflevector <64 x i32> undef, <64 x i32> undef, <64 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:1 SizeLat:16 for: store <64 x i32> %v64i32, ptr %p, align 256 ; CHECK-NEXT: Cost Model: Found costs of 4 for: %v8i64 = shufflevector <8 x i64> undef, <8 x i64> undef, <8 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:1 SizeLat:4 for: store <8 x i64> %v8i64, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of 8 for: %v16i64 = shufflevector <16 x i64> undef, <16 x i64> undef, <16 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:1 SizeLat:8 for: store <16 x i64> %v16i64, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of 16 for: %v32i64 = shufflevector <32 x i64> undef, <32 x i64> undef, <32 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:1 SizeLat:16 for: store <32 x i64> %v32i64, ptr %p, align 256 ; CHECK-NEXT: Cost Model: Found costs of 32 for: %v64i64 = shufflevector <64 x i64> undef, <64 x i64> undef, <64 x i32> ; CHECK-NEXT: Cost Model: Found costs of RThru:32 CodeSize:32 Lat:1 SizeLat:32 for: store <64 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 <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 } define void @splatstore(ptr %p) { ; CHECK-LABEL: 'splatstore' ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v4i8 = shufflevector <4 x i8> undef, <4 x i8> undef, <4 x i32> zeroinitializer ; 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 1 for: %v8i8 = shufflevector <8 x i8> undef, <8 x i8> undef, <8 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <8 x i8> %v8i8, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v16i8 = shufflevector <16 x i8> undef, <16 x i8> undef, <16 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <16 x i8> %v16i8, ptr %p, align 16 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v32i8 = shufflevector <32 x i8> undef, <32 x i8> undef, <32 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:1 SizeLat:2 for: store <32 x i8> %v32i8, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v64i8 = shufflevector <64 x i8> undef, <64 x i8> undef, <64 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:1 SizeLat:4 for: store <64 x i8> %v64i8, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v4i16 = shufflevector <4 x i16> undef, <4 x i16> undef, <4 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <4 x i16> %v4i16, ptr %p, align 8 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v8i16 = shufflevector <8 x i16> undef, <8 x i16> undef, <8 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <8 x i16> %v8i16, ptr %p, align 16 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v16i16 = shufflevector <16 x i16> undef, <16 x i16> undef, <16 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:1 SizeLat:2 for: store <16 x i16> %v16i16, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v32i16 = shufflevector <32 x i16> undef, <32 x i16> undef, <32 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:1 SizeLat:4 for: store <32 x i16> %v32i16, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v64i16 = shufflevector <64 x i16> undef, <64 x i16> undef, <64 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:1 SizeLat:8 for: store <64 x i16> %v64i16, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v4i32 = shufflevector <4 x i32> undef, <4 x i32> undef, <4 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of 1 for: store <4 x i32> %v4i32, ptr %p, align 16 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v8i32 = shufflevector <8 x i32> undef, <8 x i32> undef, <8 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:1 SizeLat:2 for: store <8 x i32> %v8i32, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v16i32 = shufflevector <16 x i32> undef, <16 x i32> undef, <16 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:1 SizeLat:4 for: store <16 x i32> %v16i32, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v32i32 = shufflevector <32 x i32> undef, <32 x i32> undef, <32 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:1 SizeLat:8 for: store <32 x i32> %v32i32, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v64i32 = shufflevector <64 x i32> undef, <64 x i32> undef, <64 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:1 SizeLat:16 for: store <64 x i32> %v64i32, ptr %p, align 256 ; CHECK-NEXT: Cost Model: Found costs of 2 for: %v4i64 = shufflevector <4 x i64> undef, <4 x i64> undef, <4 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:1 SizeLat:2 for: store <4 x i64> %v4i64, ptr %p, align 32 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v8i64 = shufflevector <8 x i64> undef, <8 x i64> undef, <8 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:1 SizeLat:4 for: store <8 x i64> %v8i64, ptr %p, align 64 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v16i64 = shufflevector <16 x i64> undef, <16 x i64> undef, <16 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:1 SizeLat:8 for: store <16 x i64> %v16i64, ptr %p, align 128 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v32i64 = shufflevector <32 x i64> undef, <32 x i64> undef, <32 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:1 SizeLat:16 for: store <32 x i64> %v32i64, ptr %p, align 256 ; CHECK-NEXT: Cost Model: Found costs of 1 for: %v64i64 = shufflevector <64 x i64> undef, <64 x i64> undef, <64 x i32> zeroinitializer ; CHECK-NEXT: Cost Model: Found costs of RThru:32 CodeSize:32 Lat:1 SizeLat:32 for: store <64 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 ; %v4i8 = shufflevector <4 x i8> undef, <4 x i8> undef, <4 x i32> zeroinitializer store <4 x i8> %v4i8, ptr %p %v8i8 = shufflevector <8 x i8> undef, <8 x i8> undef, <8 x i32> zeroinitializer store <8 x i8> %v8i8, ptr %p %v16i8 = shufflevector <16 x i8> undef, <16 x i8> undef, <16 x i32> zeroinitializer store <16 x i8> %v16i8, ptr %p %v32i8 = shufflevector <32 x i8> undef, <32 x i8> undef, <32 x i32> zeroinitializer store <32 x i8> %v32i8, ptr %p %v64i8 = shufflevector <64 x i8> undef, <64 x i8> undef, <64 x i32> zeroinitializer store <64 x i8> %v64i8, ptr %p %v4i16 = shufflevector <4 x i16> undef, <4 x i16> undef, <4 x i32> zeroinitializer store <4 x i16> %v4i16, ptr %p %v8i16 = shufflevector <8 x i16> undef, <8 x i16> undef, <8 x i32> zeroinitializer store <8 x i16> %v8i16, ptr %p %v16i16 = shufflevector <16 x i16> undef, <16 x i16> undef, <16 x i32> zeroinitializer store <16 x i16> %v16i16, ptr %p %v32i16 = shufflevector <32 x i16> undef, <32 x i16> undef, <32 x i32> zeroinitializer store <32 x i16> %v32i16, ptr %p %v64i16 = shufflevector <64 x i16> undef, <64 x i16> undef, <64 x i32> zeroinitializer store <64 x i16> %v64i16, ptr %p %v4i32 = shufflevector <4 x i32> undef, <4 x i32> undef, <4 x i32> zeroinitializer store <4 x i32> %v4i32, ptr %p %v8i32 = shufflevector <8 x i32> undef, <8 x i32> undef, <8 x i32> zeroinitializer store <8 x i32> %v8i32, ptr %p %v16i32 = shufflevector <16 x i32> undef, <16 x i32> undef, <16 x i32> zeroinitializer store <16 x i32> %v16i32, ptr %p %v32i32 = shufflevector <32 x i32> undef, <32 x i32> undef, <32 x i32> zeroinitializer store <32 x i32> %v32i32, ptr %p %v64i32 = shufflevector <64 x i32> undef, <64 x i32> undef, <64 x i32> zeroinitializer store <64 x i32> %v64i32, ptr %p %v4i64 = shufflevector <4 x i64> undef, <4 x i64> undef, <4 x i32> zeroinitializer store <4 x i64> %v4i64, ptr %p %v8i64 = shufflevector <8 x i64> undef, <8 x i64> undef, <8 x i32> zeroinitializer store <8 x i64> %v8i64, ptr %p %v16i64 = shufflevector <16 x i64> undef, <16 x i64> undef, <16 x i32> zeroinitializer store <16 x i64> %v16i64, ptr %p %v32i64 = shufflevector <32 x i64> undef, <32 x i64> undef, <32 x i32> zeroinitializer store <32 x i64> %v32i64, ptr %p %v64i64 = shufflevector <64 x i64> undef, <64 x i64> undef, <64 x i32> zeroinitializer store <64 x i64> %v64i64, ptr %p ret void }