520 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py2; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-- | FileCheck %s --check-prefixes=SSE23; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-- -mattr=+ssse3 | FileCheck %s --check-prefixes=SSSE34; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-- -mattr=+sse4.2 | FileCheck %s --check-prefixes=SSE425; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-- -mattr=+avx | FileCheck %s --check-prefixes=AVX16; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefixes=AVX27; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-- -mattr=+avx512f | FileCheck %s --check-prefixes=AVX512F8; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-- -mattr=+avx512f,+avx512bw | FileCheck %s --check-prefixes=AVX512BW9; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-- -mattr=+avx512f,+avx512dq | FileCheck %s --check-prefixes=AVX512DQ10;11; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-- -mcpu=slm | FileCheck %s --check-prefixes=SLM12; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-- -mcpu=goldmont | FileCheck %s --check-prefixes=GLM13; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=x86_64-- -mcpu=btver2 | FileCheck %s --check-prefixes=BTVER214 15declare i64 @llvm.sadd.sat.i64(i64, i64)16declare <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64>, <2 x i64>)17declare <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64>, <4 x i64>)18declare <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64>, <8 x i64>)19 20declare i32 @llvm.sadd.sat.i32(i32, i32)21declare <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32>, <4 x i32>)22declare <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32>, <8 x i32>)23declare <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32>, <16 x i32>)24 25declare i16 @llvm.sadd.sat.i16(i16, i16)26declare <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16>, <8 x i16>)27declare <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16>, <16 x i16>)28declare <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16>, <32 x i16>)29 30declare i8 @llvm.sadd.sat.i8(i8, i8)31declare <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8>, <16 x i8>)32declare <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8>, <32 x i8>)33declare <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8>, <64 x i8>)34 35define i32 @add(i32 %arg) {36; SSE2-LABEL: 'add'37; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I64 = call i64 @llvm.sadd.sat.i64(i64 undef, i64 undef)38; SSE2-NEXT: Cost Model: Found costs of RThru:12 CodeSize:24 Lat:14 SizeLat:24 for: %V2I64 = call <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64> undef, <2 x i64> undef)39; SSE2-NEXT: Cost Model: Found costs of RThru:24 CodeSize:48 Lat:28 SizeLat:48 for: %V4I64 = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> undef, <4 x i64> undef)40; SSE2-NEXT: Cost Model: Found costs of RThru:48 CodeSize:96 Lat:56 SizeLat:96 for: %V8I64 = call <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64> undef, <8 x i64> undef)41; SSE2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:4 SizeLat:9 for: %I32 = call i32 @llvm.sadd.sat.i32(i32 undef, i32 undef)42; SSE2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:11 Lat:11 SizeLat:12 for: %V4I32 = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> undef, <4 x i32> undef)43; SSE2-NEXT: Cost Model: Found costs of RThru:12 CodeSize:22 Lat:22 SizeLat:24 for: %V8I32 = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> undef, <8 x i32> undef)44; SSE2-NEXT: Cost Model: Found costs of RThru:24 CodeSize:44 Lat:44 SizeLat:48 for: %V16I32 = call <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32> undef, <16 x i32> undef)45; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.sadd.sat.i16(i16 undef, i16 undef)46; SSE2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16> undef, <8 x i16> undef)47; SSE2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> undef, <16 x i16> undef)48; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V32I16 = call <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16> undef, <32 x i16> undef)49; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.sadd.sat.i8(i8 undef, i8 undef)50; SSE2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8> undef, <16 x i8> undef)51; SSE2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> undef, <32 x i8> undef)52; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V64I8 = call <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8> undef, <64 x i8> undef)53; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef54;55; SSSE3-LABEL: 'add'56; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I64 = call i64 @llvm.sadd.sat.i64(i64 undef, i64 undef)57; SSSE3-NEXT: Cost Model: Found costs of RThru:12 CodeSize:24 Lat:14 SizeLat:24 for: %V2I64 = call <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64> undef, <2 x i64> undef)58; SSSE3-NEXT: Cost Model: Found costs of RThru:24 CodeSize:48 Lat:28 SizeLat:48 for: %V4I64 = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> undef, <4 x i64> undef)59; SSSE3-NEXT: Cost Model: Found costs of RThru:48 CodeSize:96 Lat:56 SizeLat:96 for: %V8I64 = call <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64> undef, <8 x i64> undef)60; SSSE3-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:4 SizeLat:9 for: %I32 = call i32 @llvm.sadd.sat.i32(i32 undef, i32 undef)61; SSSE3-NEXT: Cost Model: Found costs of RThru:6 CodeSize:11 Lat:11 SizeLat:12 for: %V4I32 = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> undef, <4 x i32> undef)62; SSSE3-NEXT: Cost Model: Found costs of RThru:12 CodeSize:22 Lat:22 SizeLat:24 for: %V8I32 = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> undef, <8 x i32> undef)63; SSSE3-NEXT: Cost Model: Found costs of RThru:24 CodeSize:44 Lat:44 SizeLat:48 for: %V16I32 = call <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32> undef, <16 x i32> undef)64; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.sadd.sat.i16(i16 undef, i16 undef)65; SSSE3-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16> undef, <8 x i16> undef)66; SSSE3-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> undef, <16 x i16> undef)67; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V32I16 = call <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16> undef, <32 x i16> undef)68; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.sadd.sat.i8(i8 undef, i8 undef)69; SSSE3-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8> undef, <16 x i8> undef)70; SSSE3-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> undef, <32 x i8> undef)71; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V64I8 = call <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8> undef, <64 x i8> undef)72; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef73;74; SSE42-LABEL: 'add'75; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I64 = call i64 @llvm.sadd.sat.i64(i64 undef, i64 undef)76; SSE42-NEXT: Cost Model: Found costs of RThru:10 CodeSize:17 Lat:14 SizeLat:21 for: %V2I64 = call <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64> undef, <2 x i64> undef)77; SSE42-NEXT: Cost Model: Found costs of RThru:20 CodeSize:34 Lat:28 SizeLat:42 for: %V4I64 = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> undef, <4 x i64> undef)78; SSE42-NEXT: Cost Model: Found costs of RThru:40 CodeSize:68 Lat:56 SizeLat:84 for: %V8I64 = call <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64> undef, <8 x i64> undef)79; SSE42-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:4 SizeLat:9 for: %I32 = call i32 @llvm.sadd.sat.i32(i32 undef, i32 undef)80; SSE42-NEXT: Cost Model: Found costs of RThru:5 CodeSize:8 Lat:11 SizeLat:10 for: %V4I32 = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> undef, <4 x i32> undef)81; SSE42-NEXT: Cost Model: Found costs of RThru:10 CodeSize:16 Lat:22 SizeLat:20 for: %V8I32 = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> undef, <8 x i32> undef)82; SSE42-NEXT: Cost Model: Found costs of RThru:20 CodeSize:32 Lat:44 SizeLat:40 for: %V16I32 = call <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32> undef, <16 x i32> undef)83; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.sadd.sat.i16(i16 undef, i16 undef)84; SSE42-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16> undef, <8 x i16> undef)85; SSE42-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> undef, <16 x i16> undef)86; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V32I16 = call <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16> undef, <32 x i16> undef)87; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.sadd.sat.i8(i8 undef, i8 undef)88; SSE42-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8> undef, <16 x i8> undef)89; SSE42-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> undef, <32 x i8> undef)90; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V64I8 = call <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8> undef, <64 x i8> undef)91; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef92;93; AVX1-LABEL: 'add'94; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I64 = call i64 @llvm.sadd.sat.i64(i64 undef, i64 undef)95; AVX1-NEXT: Cost Model: Found costs of RThru:6 CodeSize:8 Lat:13 SizeLat:11 for: %V2I64 = call <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64> undef, <2 x i64> undef)96; AVX1-NEXT: Cost Model: Found costs of RThru:13 CodeSize:15 Lat:20 SizeLat:25 for: %V4I64 = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> undef, <4 x i64> undef)97; AVX1-NEXT: Cost Model: Found costs of RThru:26 CodeSize:30 Lat:40 SizeLat:50 for: %V8I64 = call <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64> undef, <8 x i64> undef)98; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:4 SizeLat:9 for: %I32 = call i32 @llvm.sadd.sat.i32(i32 undef, i32 undef)99; AVX1-NEXT: Cost Model: Found costs of RThru:5 CodeSize:8 Lat:11 SizeLat:10 for: %V4I32 = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> undef, <4 x i32> undef)100; AVX1-NEXT: Cost Model: Found costs of RThru:12 CodeSize:14 Lat:18 SizeLat:24 for: %V8I32 = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> undef, <8 x i32> undef)101; AVX1-NEXT: Cost Model: Found costs of RThru:24 CodeSize:28 Lat:36 SizeLat:48 for: %V16I32 = call <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32> undef, <16 x i32> undef)102; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.sadd.sat.i16(i16 undef, i16 undef)103; AVX1-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16> undef, <8 x i16> undef)104; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:5 Lat:3 SizeLat:6 for: %V16I16 = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> undef, <16 x i16> undef)105; AVX1-NEXT: Cost Model: Found costs of RThru:6 CodeSize:10 Lat:6 SizeLat:12 for: %V32I16 = call <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16> undef, <32 x i16> undef)106; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.sadd.sat.i8(i8 undef, i8 undef)107; AVX1-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8> undef, <16 x i8> undef)108; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:5 Lat:3 SizeLat:6 for: %V32I8 = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> undef, <32 x i8> undef)109; AVX1-NEXT: Cost Model: Found costs of RThru:6 CodeSize:10 Lat:6 SizeLat:12 for: %V64I8 = call <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8> undef, <64 x i8> undef)110; AVX1-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef111;112; AVX2-LABEL: 'add'113; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I64 = call i64 @llvm.sadd.sat.i64(i64 undef, i64 undef)114; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:13 SizeLat:11 for: %V2I64 = call <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64> undef, <2 x i64> undef)115; AVX2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:8 Lat:10 SizeLat:12 for: %V4I64 = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> undef, <4 x i64> undef)116; AVX2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:16 Lat:20 SizeLat:24 for: %V8I64 = call <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64> undef, <8 x i64> undef)117; AVX2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:4 SizeLat:9 for: %I32 = call i32 @llvm.sadd.sat.i32(i32 undef, i32 undef)118; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:6 SizeLat:9 for: %V4I32 = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> undef, <4 x i32> undef)119; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:6 SizeLat:13 for: %V8I32 = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> undef, <8 x i32> undef)120; AVX2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:14 Lat:12 SizeLat:26 for: %V16I32 = call <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32> undef, <16 x i32> undef)121; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.sadd.sat.i16(i16 undef, i16 undef)122; AVX2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16> undef, <8 x i16> undef)123; AVX2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> undef, <16 x i16> undef)124; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:2 SizeLat:4 for: %V32I16 = call <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16> undef, <32 x i16> undef)125; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.sadd.sat.i8(i8 undef, i8 undef)126; AVX2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8> undef, <16 x i8> undef)127; AVX2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> undef, <32 x i8> undef)128; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:2 SizeLat:4 for: %V64I8 = call <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8> undef, <64 x i8> undef)129; AVX2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef130;131; AVX512F-LABEL: 'add'132; AVX512F-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I64 = call i64 @llvm.sadd.sat.i64(i64 undef, i64 undef)133; AVX512F-NEXT: Cost Model: Found costs of RThru:3 CodeSize:8 Lat:3 SizeLat:9 for: %V2I64 = call <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64> undef, <2 x i64> undef)134; AVX512F-NEXT: Cost Model: Found costs of RThru:2 CodeSize:6 Lat:2 SizeLat:7 for: %V4I64 = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> undef, <4 x i64> undef)135; AVX512F-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:3 SizeLat:7 for: %V8I64 = call <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64> undef, <8 x i64> undef)136; AVX512F-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:4 SizeLat:9 for: %I32 = call i32 @llvm.sadd.sat.i32(i32 undef, i32 undef)137; AVX512F-NEXT: Cost Model: Found costs of RThru:2 CodeSize:6 Lat:2 SizeLat:7 for: %V4I32 = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> undef, <4 x i32> undef)138; AVX512F-NEXT: Cost Model: Found costs of RThru:2 CodeSize:6 Lat:2 SizeLat:7 for: %V8I32 = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> undef, <8 x i32> undef)139; AVX512F-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:3 SizeLat:7 for: %V16I32 = call <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32> undef, <16 x i32> undef)140; AVX512F-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.sadd.sat.i16(i16 undef, i16 undef)141; AVX512F-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16> undef, <8 x i16> undef)142; AVX512F-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> undef, <16 x i16> undef)143; AVX512F-NEXT: Cost Model: Found costs of 2 for: %V32I16 = call <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16> undef, <32 x i16> undef)144; AVX512F-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.sadd.sat.i8(i8 undef, i8 undef)145; AVX512F-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8> undef, <16 x i8> undef)146; AVX512F-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> undef, <32 x i8> undef)147; AVX512F-NEXT: Cost Model: Found costs of 2 for: %V64I8 = call <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8> undef, <64 x i8> undef)148; AVX512F-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef149;150; AVX512BW-LABEL: 'add'151; AVX512BW-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I64 = call i64 @llvm.sadd.sat.i64(i64 undef, i64 undef)152; AVX512BW-NEXT: Cost Model: Found costs of RThru:3 CodeSize:8 Lat:3 SizeLat:9 for: %V2I64 = call <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64> undef, <2 x i64> undef)153; AVX512BW-NEXT: Cost Model: Found costs of RThru:2 CodeSize:6 Lat:2 SizeLat:7 for: %V4I64 = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> undef, <4 x i64> undef)154; AVX512BW-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:3 SizeLat:7 for: %V8I64 = call <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64> undef, <8 x i64> undef)155; AVX512BW-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:4 SizeLat:9 for: %I32 = call i32 @llvm.sadd.sat.i32(i32 undef, i32 undef)156; AVX512BW-NEXT: Cost Model: Found costs of RThru:2 CodeSize:6 Lat:2 SizeLat:7 for: %V4I32 = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> undef, <4 x i32> undef)157; AVX512BW-NEXT: Cost Model: Found costs of RThru:2 CodeSize:6 Lat:2 SizeLat:7 for: %V8I32 = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> undef, <8 x i32> undef)158; AVX512BW-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:3 SizeLat:7 for: %V16I32 = call <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32> undef, <16 x i32> undef)159; AVX512BW-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.sadd.sat.i16(i16 undef, i16 undef)160; AVX512BW-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16> undef, <8 x i16> undef)161; AVX512BW-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> undef, <16 x i16> undef)162; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %V32I16 = call <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16> undef, <32 x i16> undef)163; AVX512BW-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.sadd.sat.i8(i8 undef, i8 undef)164; AVX512BW-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8> undef, <16 x i8> undef)165; AVX512BW-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> undef, <32 x i8> undef)166; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %V64I8 = call <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8> undef, <64 x i8> undef)167; AVX512BW-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef168;169; AVX512DQ-LABEL: 'add'170; AVX512DQ-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I64 = call i64 @llvm.sadd.sat.i64(i64 undef, i64 undef)171; AVX512DQ-NEXT: Cost Model: Found costs of RThru:3 CodeSize:8 Lat:3 SizeLat:9 for: %V2I64 = call <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64> undef, <2 x i64> undef)172; AVX512DQ-NEXT: Cost Model: Found costs of RThru:2 CodeSize:6 Lat:2 SizeLat:7 for: %V4I64 = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> undef, <4 x i64> undef)173; AVX512DQ-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:3 SizeLat:7 for: %V8I64 = call <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64> undef, <8 x i64> undef)174; AVX512DQ-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:4 SizeLat:9 for: %I32 = call i32 @llvm.sadd.sat.i32(i32 undef, i32 undef)175; AVX512DQ-NEXT: Cost Model: Found costs of RThru:2 CodeSize:6 Lat:2 SizeLat:7 for: %V4I32 = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> undef, <4 x i32> undef)176; AVX512DQ-NEXT: Cost Model: Found costs of RThru:2 CodeSize:6 Lat:2 SizeLat:7 for: %V8I32 = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> undef, <8 x i32> undef)177; AVX512DQ-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:3 SizeLat:7 for: %V16I32 = call <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32> undef, <16 x i32> undef)178; AVX512DQ-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.sadd.sat.i16(i16 undef, i16 undef)179; AVX512DQ-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16> undef, <8 x i16> undef)180; AVX512DQ-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> undef, <16 x i16> undef)181; AVX512DQ-NEXT: Cost Model: Found costs of 2 for: %V32I16 = call <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16> undef, <32 x i16> undef)182; AVX512DQ-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.sadd.sat.i8(i8 undef, i8 undef)183; AVX512DQ-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8> undef, <16 x i8> undef)184; AVX512DQ-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> undef, <32 x i8> undef)185; AVX512DQ-NEXT: Cost Model: Found costs of 2 for: %V64I8 = call <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8> undef, <64 x i8> undef)186; AVX512DQ-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef187;188; SLM-LABEL: 'add'189; SLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I64 = call i64 @llvm.sadd.sat.i64(i64 undef, i64 undef)190; SLM-NEXT: Cost Model: Found costs of RThru:10 CodeSize:17 Lat:14 SizeLat:21 for: %V2I64 = call <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64> undef, <2 x i64> undef)191; SLM-NEXT: Cost Model: Found costs of RThru:20 CodeSize:34 Lat:28 SizeLat:42 for: %V4I64 = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> undef, <4 x i64> undef)192; SLM-NEXT: Cost Model: Found costs of RThru:40 CodeSize:68 Lat:56 SizeLat:84 for: %V8I64 = call <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64> undef, <8 x i64> undef)193; SLM-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:4 SizeLat:9 for: %I32 = call i32 @llvm.sadd.sat.i32(i32 undef, i32 undef)194; SLM-NEXT: Cost Model: Found costs of RThru:5 CodeSize:8 Lat:11 SizeLat:10 for: %V4I32 = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> undef, <4 x i32> undef)195; SLM-NEXT: Cost Model: Found costs of RThru:10 CodeSize:16 Lat:22 SizeLat:20 for: %V8I32 = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> undef, <8 x i32> undef)196; SLM-NEXT: Cost Model: Found costs of RThru:20 CodeSize:32 Lat:44 SizeLat:40 for: %V16I32 = call <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32> undef, <16 x i32> undef)197; SLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.sadd.sat.i16(i16 undef, i16 undef)198; SLM-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16> undef, <8 x i16> undef)199; SLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> undef, <16 x i16> undef)200; SLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V32I16 = call <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16> undef, <32 x i16> undef)201; SLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.sadd.sat.i8(i8 undef, i8 undef)202; SLM-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8> undef, <16 x i8> undef)203; SLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> undef, <32 x i8> undef)204; SLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V64I8 = call <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8> undef, <64 x i8> undef)205; SLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef206;207; GLM-LABEL: 'add'208; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I64 = call i64 @llvm.sadd.sat.i64(i64 undef, i64 undef)209; GLM-NEXT: Cost Model: Found costs of RThru:10 CodeSize:17 Lat:14 SizeLat:21 for: %V2I64 = call <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64> undef, <2 x i64> undef)210; GLM-NEXT: Cost Model: Found costs of RThru:20 CodeSize:34 Lat:28 SizeLat:42 for: %V4I64 = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> undef, <4 x i64> undef)211; GLM-NEXT: Cost Model: Found costs of RThru:40 CodeSize:68 Lat:56 SizeLat:84 for: %V8I64 = call <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64> undef, <8 x i64> undef)212; GLM-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:4 SizeLat:9 for: %I32 = call i32 @llvm.sadd.sat.i32(i32 undef, i32 undef)213; GLM-NEXT: Cost Model: Found costs of RThru:5 CodeSize:8 Lat:11 SizeLat:10 for: %V4I32 = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> undef, <4 x i32> undef)214; GLM-NEXT: Cost Model: Found costs of RThru:10 CodeSize:16 Lat:22 SizeLat:20 for: %V8I32 = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> undef, <8 x i32> undef)215; GLM-NEXT: Cost Model: Found costs of RThru:20 CodeSize:32 Lat:44 SizeLat:40 for: %V16I32 = call <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32> undef, <16 x i32> undef)216; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.sadd.sat.i16(i16 undef, i16 undef)217; GLM-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16> undef, <8 x i16> undef)218; GLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> undef, <16 x i16> undef)219; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V32I16 = call <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16> undef, <32 x i16> undef)220; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.sadd.sat.i8(i8 undef, i8 undef)221; GLM-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8> undef, <16 x i8> undef)222; GLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> undef, <32 x i8> undef)223; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V64I8 = call <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8> undef, <64 x i8> undef)224; GLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef225;226; BTVER2-LABEL: 'add'227; BTVER2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I64 = call i64 @llvm.sadd.sat.i64(i64 undef, i64 undef)228; BTVER2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:8 Lat:13 SizeLat:11 for: %V2I64 = call <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64> undef, <2 x i64> undef)229; BTVER2-NEXT: Cost Model: Found costs of RThru:13 CodeSize:15 Lat:20 SizeLat:25 for: %V4I64 = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> undef, <4 x i64> undef)230; BTVER2-NEXT: Cost Model: Found costs of RThru:26 CodeSize:30 Lat:40 SizeLat:50 for: %V8I64 = call <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64> undef, <8 x i64> undef)231; BTVER2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:6 Lat:4 SizeLat:9 for: %I32 = call i32 @llvm.sadd.sat.i32(i32 undef, i32 undef)232; BTVER2-NEXT: Cost Model: Found costs of RThru:5 CodeSize:8 Lat:11 SizeLat:10 for: %V4I32 = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> undef, <4 x i32> undef)233; BTVER2-NEXT: Cost Model: Found costs of RThru:12 CodeSize:14 Lat:18 SizeLat:24 for: %V8I32 = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> undef, <8 x i32> undef)234; BTVER2-NEXT: Cost Model: Found costs of RThru:24 CodeSize:28 Lat:36 SizeLat:48 for: %V16I32 = call <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32> undef, <16 x i32> undef)235; BTVER2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.sadd.sat.i16(i16 undef, i16 undef)236; BTVER2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16> undef, <8 x i16> undef)237; BTVER2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:5 Lat:3 SizeLat:6 for: %V16I16 = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> undef, <16 x i16> undef)238; BTVER2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:10 Lat:6 SizeLat:12 for: %V32I16 = call <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16> undef, <32 x i16> undef)239; BTVER2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.sadd.sat.i8(i8 undef, i8 undef)240; BTVER2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8> undef, <16 x i8> undef)241; BTVER2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:5 Lat:3 SizeLat:6 for: %V32I8 = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> undef, <32 x i8> undef)242; BTVER2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:10 Lat:6 SizeLat:12 for: %V64I8 = call <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8> undef, <64 x i8> undef)243; BTVER2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef244;245 %I64 = call i64 @llvm.sadd.sat.i64(i64 undef, i64 undef)246 %V2I64 = call <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64> undef, <2 x i64> undef)247 %V4I64 = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> undef, <4 x i64> undef)248 %V8I64 = call <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64> undef, <8 x i64> undef)249 250 %I32 = call i32 @llvm.sadd.sat.i32(i32 undef, i32 undef)251 %V4I32 = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> undef, <4 x i32> undef)252 %V8I32 = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> undef, <8 x i32> undef)253 %V16I32 = call <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32> undef, <16 x i32> undef)254 255 %I16 = call i16 @llvm.sadd.sat.i16(i16 undef, i16 undef)256 %V8I16 = call <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16> undef, <8 x i16> undef)257 %V16I16 = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> undef, <16 x i16> undef)258 %V32I16 = call <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16> undef, <32 x i16> undef)259 260 %I8 = call i8 @llvm.sadd.sat.i8(i8 undef, i8 undef)261 %V16I8 = call <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8> undef, <16 x i8> undef)262 %V32I8 = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> undef, <32 x i8> undef)263 %V64I8 = call <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8> undef, <64 x i8> undef)264 265 ret i32 undef266}267 268declare i64 @llvm.ssub.sat.i64(i64, i64)269declare <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64>, <2 x i64>)270declare <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64>, <4 x i64>)271declare <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64>, <8 x i64>)272 273declare i32 @llvm.ssub.sat.i32(i32, i32)274declare <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32>, <4 x i32>)275declare <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32>, <8 x i32>)276declare <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32>, <16 x i32>)277 278declare i16 @llvm.ssub.sat.i16(i16, i16)279declare <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16>, <8 x i16>)280declare <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16>, <16 x i16>)281declare <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16>, <32 x i16>)282 283declare i8 @llvm.ssub.sat.i8(i8, i8)284declare <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8>, <16 x i8>)285declare <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8>, <32 x i8>)286declare <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8>, <64 x i8>)287 288define i32 @sub(i32 %arg) {289; SSE2-LABEL: 'sub'290; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I64 = call i64 @llvm.ssub.sat.i64(i64 undef, i64 undef)291; SSE2-NEXT: Cost Model: Found costs of RThru:16 CodeSize:31 Lat:19 SizeLat:31 for: %V2I64 = call <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64> undef, <2 x i64> undef)292; SSE2-NEXT: Cost Model: Found costs of RThru:32 CodeSize:62 Lat:38 SizeLat:62 for: %V4I64 = call <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64> undef, <4 x i64> undef)293; SSE2-NEXT: Cost Model: Found costs of RThru:64 CodeSize:124 Lat:76 SizeLat:124 for: %V8I64 = call <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64> undef, <8 x i64> undef)294; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I32 = call i32 @llvm.ssub.sat.i32(i32 undef, i32 undef)295; SSE2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:12 Lat:14 SizeLat:13 for: %V4I32 = call <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32> undef, <4 x i32> undef)296; SSE2-NEXT: Cost Model: Found costs of RThru:12 CodeSize:24 Lat:28 SizeLat:26 for: %V8I32 = call <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32> undef, <8 x i32> undef)297; SSE2-NEXT: Cost Model: Found costs of RThru:24 CodeSize:48 Lat:56 SizeLat:52 for: %V16I32 = call <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32> undef, <16 x i32> undef)298; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.ssub.sat.i16(i16 undef, i16 undef)299; SSE2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16> undef, <8 x i16> undef)300; SSE2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16> undef, <16 x i16> undef)301; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V32I16 = call <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16> undef, <32 x i16> undef)302; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.ssub.sat.i8(i8 undef, i8 undef)303; SSE2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8> undef, <16 x i8> undef)304; SSE2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8> undef, <32 x i8> undef)305; SSE2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V64I8 = call <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8> undef, <64 x i8> undef)306; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef307;308; SSSE3-LABEL: 'sub'309; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I64 = call i64 @llvm.ssub.sat.i64(i64 undef, i64 undef)310; SSSE3-NEXT: Cost Model: Found costs of RThru:16 CodeSize:31 Lat:19 SizeLat:31 for: %V2I64 = call <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64> undef, <2 x i64> undef)311; SSSE3-NEXT: Cost Model: Found costs of RThru:32 CodeSize:62 Lat:38 SizeLat:62 for: %V4I64 = call <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64> undef, <4 x i64> undef)312; SSSE3-NEXT: Cost Model: Found costs of RThru:64 CodeSize:124 Lat:76 SizeLat:124 for: %V8I64 = call <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64> undef, <8 x i64> undef)313; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I32 = call i32 @llvm.ssub.sat.i32(i32 undef, i32 undef)314; SSSE3-NEXT: Cost Model: Found costs of RThru:6 CodeSize:12 Lat:14 SizeLat:13 for: %V4I32 = call <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32> undef, <4 x i32> undef)315; SSSE3-NEXT: Cost Model: Found costs of RThru:12 CodeSize:24 Lat:28 SizeLat:26 for: %V8I32 = call <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32> undef, <8 x i32> undef)316; SSSE3-NEXT: Cost Model: Found costs of RThru:24 CodeSize:48 Lat:56 SizeLat:52 for: %V16I32 = call <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32> undef, <16 x i32> undef)317; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.ssub.sat.i16(i16 undef, i16 undef)318; SSSE3-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16> undef, <8 x i16> undef)319; SSSE3-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16> undef, <16 x i16> undef)320; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V32I16 = call <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16> undef, <32 x i16> undef)321; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.ssub.sat.i8(i8 undef, i8 undef)322; SSSE3-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8> undef, <16 x i8> undef)323; SSSE3-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8> undef, <32 x i8> undef)324; SSSE3-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V64I8 = call <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8> undef, <64 x i8> undef)325; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef326;327; SSE42-LABEL: 'sub'328; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I64 = call i64 @llvm.ssub.sat.i64(i64 undef, i64 undef)329; SSE42-NEXT: Cost Model: Found costs of RThru:12 CodeSize:25 Lat:19 SizeLat:29 for: %V2I64 = call <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64> undef, <2 x i64> undef)330; SSE42-NEXT: Cost Model: Found costs of RThru:24 CodeSize:50 Lat:38 SizeLat:58 for: %V4I64 = call <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64> undef, <4 x i64> undef)331; SSE42-NEXT: Cost Model: Found costs of RThru:48 CodeSize:100 Lat:76 SizeLat:116 for: %V8I64 = call <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64> undef, <8 x i64> undef)332; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I32 = call i32 @llvm.ssub.sat.i32(i32 undef, i32 undef)333; SSE42-NEXT: Cost Model: Found costs of RThru:6 CodeSize:10 Lat:14 SizeLat:12 for: %V4I32 = call <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32> undef, <4 x i32> undef)334; SSE42-NEXT: Cost Model: Found costs of RThru:12 CodeSize:20 Lat:28 SizeLat:24 for: %V8I32 = call <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32> undef, <8 x i32> undef)335; SSE42-NEXT: Cost Model: Found costs of RThru:24 CodeSize:40 Lat:56 SizeLat:48 for: %V16I32 = call <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32> undef, <16 x i32> undef)336; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.ssub.sat.i16(i16 undef, i16 undef)337; SSE42-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16> undef, <8 x i16> undef)338; SSE42-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16> undef, <16 x i16> undef)339; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V32I16 = call <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16> undef, <32 x i16> undef)340; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.ssub.sat.i8(i8 undef, i8 undef)341; SSE42-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8> undef, <16 x i8> undef)342; SSE42-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8> undef, <32 x i8> undef)343; SSE42-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V64I8 = call <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8> undef, <64 x i8> undef)344; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef345;346; AVX1-LABEL: 'sub'347; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I64 = call i64 @llvm.ssub.sat.i64(i64 undef, i64 undef)348; AVX1-NEXT: Cost Model: Found costs of RThru:7 CodeSize:9 Lat:13 SizeLat:13 for: %V2I64 = call <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64> undef, <2 x i64> undef)349; AVX1-NEXT: Cost Model: Found costs of RThru:15 CodeSize:18 Lat:21 SizeLat:29 for: %V4I64 = call <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64> undef, <4 x i64> undef)350; AVX1-NEXT: Cost Model: Found costs of RThru:30 CodeSize:36 Lat:42 SizeLat:58 for: %V8I64 = call <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64> undef, <8 x i64> undef)351; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I32 = call i32 @llvm.ssub.sat.i32(i32 undef, i32 undef)352; AVX1-NEXT: Cost Model: Found costs of RThru:6 CodeSize:10 Lat:14 SizeLat:12 for: %V4I32 = call <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32> undef, <4 x i32> undef)353; AVX1-NEXT: Cost Model: Found costs of RThru:15 CodeSize:18 Lat:19 SizeLat:29 for: %V8I32 = call <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32> undef, <8 x i32> undef)354; AVX1-NEXT: Cost Model: Found costs of RThru:30 CodeSize:36 Lat:38 SizeLat:58 for: %V16I32 = call <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32> undef, <16 x i32> undef)355; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.ssub.sat.i16(i16 undef, i16 undef)356; AVX1-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16> undef, <8 x i16> undef)357; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:5 Lat:3 SizeLat:6 for: %V16I16 = call <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16> undef, <16 x i16> undef)358; AVX1-NEXT: Cost Model: Found costs of RThru:6 CodeSize:10 Lat:6 SizeLat:12 for: %V32I16 = call <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16> undef, <32 x i16> undef)359; AVX1-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.ssub.sat.i8(i8 undef, i8 undef)360; AVX1-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8> undef, <16 x i8> undef)361; AVX1-NEXT: Cost Model: Found costs of RThru:3 CodeSize:5 Lat:3 SizeLat:6 for: %V32I8 = call <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8> undef, <32 x i8> undef)362; AVX1-NEXT: Cost Model: Found costs of RThru:6 CodeSize:10 Lat:6 SizeLat:12 for: %V64I8 = call <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8> undef, <64 x i8> undef)363; AVX1-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef364;365; AVX2-LABEL: 'sub'366; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I64 = call i64 @llvm.ssub.sat.i64(i64 undef, i64 undef)367; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:9 Lat:13 SizeLat:13 for: %V2I64 = call <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64> undef, <2 x i64> undef)368; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:9 Lat:15 SizeLat:13 for: %V4I64 = call <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64> undef, <4 x i64> undef)369; AVX2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:18 Lat:30 SizeLat:26 for: %V8I64 = call <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64> undef, <8 x i64> undef)370; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I32 = call i32 @llvm.ssub.sat.i32(i32 undef, i32 undef)371; AVX2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:9 Lat:14 SizeLat:11 for: %V4I32 = call <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32> undef, <4 x i32> undef)372; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:9 Lat:15 SizeLat:16 for: %V8I32 = call <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32> undef, <8 x i32> undef)373; AVX2-NEXT: Cost Model: Found costs of RThru:8 CodeSize:18 Lat:30 SizeLat:32 for: %V16I32 = call <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32> undef, <16 x i32> undef)374; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.ssub.sat.i16(i16 undef, i16 undef)375; AVX2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16> undef, <8 x i16> undef)376; AVX2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16> undef, <16 x i16> undef)377; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:2 SizeLat:4 for: %V32I16 = call <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16> undef, <32 x i16> undef)378; AVX2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.ssub.sat.i8(i8 undef, i8 undef)379; AVX2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8> undef, <16 x i8> undef)380; AVX2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8> undef, <32 x i8> undef)381; AVX2-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:2 SizeLat:4 for: %V64I8 = call <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8> undef, <64 x i8> undef)382; AVX2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef383;384; AVX512F-LABEL: 'sub'385; AVX512F-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I64 = call i64 @llvm.ssub.sat.i64(i64 undef, i64 undef)386; AVX512F-NEXT: Cost Model: Found costs of RThru:2 CodeSize:9 Lat:13 SizeLat:10 for: %V2I64 = call <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64> undef, <2 x i64> undef)387; AVX512F-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:15 SizeLat:8 for: %V4I64 = call <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64> undef, <4 x i64> undef)388; AVX512F-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:14 SizeLat:8 for: %V8I64 = call <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64> undef, <8 x i64> undef)389; AVX512F-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I32 = call i32 @llvm.ssub.sat.i32(i32 undef, i32 undef)390; AVX512F-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:14 SizeLat:8 for: %V4I32 = call <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32> undef, <4 x i32> undef)391; AVX512F-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:15 SizeLat:8 for: %V8I32 = call <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32> undef, <8 x i32> undef)392; AVX512F-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:14 SizeLat:8 for: %V16I32 = call <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32> undef, <16 x i32> undef)393; AVX512F-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.ssub.sat.i16(i16 undef, i16 undef)394; AVX512F-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16> undef, <8 x i16> undef)395; AVX512F-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16> undef, <16 x i16> undef)396; AVX512F-NEXT: Cost Model: Found costs of 2 for: %V32I16 = call <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16> undef, <32 x i16> undef)397; AVX512F-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.ssub.sat.i8(i8 undef, i8 undef)398; AVX512F-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8> undef, <16 x i8> undef)399; AVX512F-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8> undef, <32 x i8> undef)400; AVX512F-NEXT: Cost Model: Found costs of 2 for: %V64I8 = call <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8> undef, <64 x i8> undef)401; AVX512F-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef402;403; AVX512BW-LABEL: 'sub'404; AVX512BW-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I64 = call i64 @llvm.ssub.sat.i64(i64 undef, i64 undef)405; AVX512BW-NEXT: Cost Model: Found costs of RThru:2 CodeSize:9 Lat:13 SizeLat:10 for: %V2I64 = call <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64> undef, <2 x i64> undef)406; AVX512BW-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:15 SizeLat:8 for: %V4I64 = call <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64> undef, <4 x i64> undef)407; AVX512BW-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:14 SizeLat:8 for: %V8I64 = call <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64> undef, <8 x i64> undef)408; AVX512BW-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I32 = call i32 @llvm.ssub.sat.i32(i32 undef, i32 undef)409; AVX512BW-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:14 SizeLat:8 for: %V4I32 = call <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32> undef, <4 x i32> undef)410; AVX512BW-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:15 SizeLat:8 for: %V8I32 = call <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32> undef, <8 x i32> undef)411; AVX512BW-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:14 SizeLat:8 for: %V16I32 = call <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32> undef, <16 x i32> undef)412; AVX512BW-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.ssub.sat.i16(i16 undef, i16 undef)413; AVX512BW-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16> undef, <8 x i16> undef)414; AVX512BW-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16> undef, <16 x i16> undef)415; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %V32I16 = call <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16> undef, <32 x i16> undef)416; AVX512BW-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.ssub.sat.i8(i8 undef, i8 undef)417; AVX512BW-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8> undef, <16 x i8> undef)418; AVX512BW-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8> undef, <32 x i8> undef)419; AVX512BW-NEXT: Cost Model: Found costs of 1 for: %V64I8 = call <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8> undef, <64 x i8> undef)420; AVX512BW-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef421;422; AVX512DQ-LABEL: 'sub'423; AVX512DQ-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I64 = call i64 @llvm.ssub.sat.i64(i64 undef, i64 undef)424; AVX512DQ-NEXT: Cost Model: Found costs of RThru:2 CodeSize:9 Lat:13 SizeLat:10 for: %V2I64 = call <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64> undef, <2 x i64> undef)425; AVX512DQ-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:15 SizeLat:8 for: %V4I64 = call <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64> undef, <4 x i64> undef)426; AVX512DQ-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:14 SizeLat:8 for: %V8I64 = call <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64> undef, <8 x i64> undef)427; AVX512DQ-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I32 = call i32 @llvm.ssub.sat.i32(i32 undef, i32 undef)428; AVX512DQ-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:14 SizeLat:8 for: %V4I32 = call <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32> undef, <4 x i32> undef)429; AVX512DQ-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:15 SizeLat:8 for: %V8I32 = call <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32> undef, <8 x i32> undef)430; AVX512DQ-NEXT: Cost Model: Found costs of RThru:2 CodeSize:7 Lat:14 SizeLat:8 for: %V16I32 = call <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32> undef, <16 x i32> undef)431; AVX512DQ-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.ssub.sat.i16(i16 undef, i16 undef)432; AVX512DQ-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16> undef, <8 x i16> undef)433; AVX512DQ-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16> undef, <16 x i16> undef)434; AVX512DQ-NEXT: Cost Model: Found costs of 2 for: %V32I16 = call <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16> undef, <32 x i16> undef)435; AVX512DQ-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.ssub.sat.i8(i8 undef, i8 undef)436; AVX512DQ-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8> undef, <16 x i8> undef)437; AVX512DQ-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8> undef, <32 x i8> undef)438; AVX512DQ-NEXT: Cost Model: Found costs of 2 for: %V64I8 = call <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8> undef, <64 x i8> undef)439; AVX512DQ-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef440;441; SLM-LABEL: 'sub'442; SLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I64 = call i64 @llvm.ssub.sat.i64(i64 undef, i64 undef)443; SLM-NEXT: Cost Model: Found costs of RThru:12 CodeSize:25 Lat:19 SizeLat:29 for: %V2I64 = call <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64> undef, <2 x i64> undef)444; SLM-NEXT: Cost Model: Found costs of RThru:24 CodeSize:50 Lat:38 SizeLat:58 for: %V4I64 = call <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64> undef, <4 x i64> undef)445; SLM-NEXT: Cost Model: Found costs of RThru:48 CodeSize:100 Lat:76 SizeLat:116 for: %V8I64 = call <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64> undef, <8 x i64> undef)446; SLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I32 = call i32 @llvm.ssub.sat.i32(i32 undef, i32 undef)447; SLM-NEXT: Cost Model: Found costs of RThru:6 CodeSize:10 Lat:14 SizeLat:12 for: %V4I32 = call <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32> undef, <4 x i32> undef)448; SLM-NEXT: Cost Model: Found costs of RThru:12 CodeSize:20 Lat:28 SizeLat:24 for: %V8I32 = call <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32> undef, <8 x i32> undef)449; SLM-NEXT: Cost Model: Found costs of RThru:24 CodeSize:40 Lat:56 SizeLat:48 for: %V16I32 = call <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32> undef, <16 x i32> undef)450; SLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.ssub.sat.i16(i16 undef, i16 undef)451; SLM-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16> undef, <8 x i16> undef)452; SLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16> undef, <16 x i16> undef)453; SLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V32I16 = call <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16> undef, <32 x i16> undef)454; SLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.ssub.sat.i8(i8 undef, i8 undef)455; SLM-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8> undef, <16 x i8> undef)456; SLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8> undef, <32 x i8> undef)457; SLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V64I8 = call <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8> undef, <64 x i8> undef)458; SLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef459;460; GLM-LABEL: 'sub'461; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I64 = call i64 @llvm.ssub.sat.i64(i64 undef, i64 undef)462; GLM-NEXT: Cost Model: Found costs of RThru:12 CodeSize:25 Lat:19 SizeLat:29 for: %V2I64 = call <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64> undef, <2 x i64> undef)463; GLM-NEXT: Cost Model: Found costs of RThru:24 CodeSize:50 Lat:38 SizeLat:58 for: %V4I64 = call <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64> undef, <4 x i64> undef)464; GLM-NEXT: Cost Model: Found costs of RThru:48 CodeSize:100 Lat:76 SizeLat:116 for: %V8I64 = call <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64> undef, <8 x i64> undef)465; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I32 = call i32 @llvm.ssub.sat.i32(i32 undef, i32 undef)466; GLM-NEXT: Cost Model: Found costs of RThru:6 CodeSize:10 Lat:14 SizeLat:12 for: %V4I32 = call <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32> undef, <4 x i32> undef)467; GLM-NEXT: Cost Model: Found costs of RThru:12 CodeSize:20 Lat:28 SizeLat:24 for: %V8I32 = call <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32> undef, <8 x i32> undef)468; GLM-NEXT: Cost Model: Found costs of RThru:24 CodeSize:40 Lat:56 SizeLat:48 for: %V16I32 = call <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32> undef, <16 x i32> undef)469; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.ssub.sat.i16(i16 undef, i16 undef)470; GLM-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16> undef, <8 x i16> undef)471; GLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16> undef, <16 x i16> undef)472; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V32I16 = call <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16> undef, <32 x i16> undef)473; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.ssub.sat.i8(i8 undef, i8 undef)474; GLM-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8> undef, <16 x i8> undef)475; GLM-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:4 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8> undef, <32 x i8> undef)476; GLM-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:8 SizeLat:4 for: %V64I8 = call <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8> undef, <64 x i8> undef)477; GLM-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef478;479; BTVER2-LABEL: 'sub'480; BTVER2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I64 = call i64 @llvm.ssub.sat.i64(i64 undef, i64 undef)481; BTVER2-NEXT: Cost Model: Found costs of RThru:7 CodeSize:9 Lat:13 SizeLat:13 for: %V2I64 = call <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64> undef, <2 x i64> undef)482; BTVER2-NEXT: Cost Model: Found costs of RThru:15 CodeSize:18 Lat:21 SizeLat:29 for: %V4I64 = call <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64> undef, <4 x i64> undef)483; BTVER2-NEXT: Cost Model: Found costs of RThru:30 CodeSize:36 Lat:42 SizeLat:58 for: %V8I64 = call <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64> undef, <8 x i64> undef)484; BTVER2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I32 = call i32 @llvm.ssub.sat.i32(i32 undef, i32 undef)485; BTVER2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:10 Lat:14 SizeLat:12 for: %V4I32 = call <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32> undef, <4 x i32> undef)486; BTVER2-NEXT: Cost Model: Found costs of RThru:15 CodeSize:18 Lat:19 SizeLat:29 for: %V8I32 = call <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32> undef, <8 x i32> undef)487; BTVER2-NEXT: Cost Model: Found costs of RThru:30 CodeSize:36 Lat:38 SizeLat:58 for: %V16I32 = call <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32> undef, <16 x i32> undef)488; BTVER2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:7 Lat:4 SizeLat:10 for: %I16 = call i16 @llvm.ssub.sat.i16(i16 undef, i16 undef)489; BTVER2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V8I16 = call <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16> undef, <8 x i16> undef)490; BTVER2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:5 Lat:3 SizeLat:6 for: %V16I16 = call <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16> undef, <16 x i16> undef)491; BTVER2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:10 Lat:6 SizeLat:12 for: %V32I16 = call <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16> undef, <32 x i16> undef)492; BTVER2-NEXT: Cost Model: Found costs of RThru:4 CodeSize:8 Lat:5 SizeLat:11 for: %I8 = call i8 @llvm.ssub.sat.i8(i8 undef, i8 undef)493; BTVER2-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:1 for: %V16I8 = call <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8> undef, <16 x i8> undef)494; BTVER2-NEXT: Cost Model: Found costs of RThru:3 CodeSize:5 Lat:3 SizeLat:6 for: %V32I8 = call <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8> undef, <32 x i8> undef)495; BTVER2-NEXT: Cost Model: Found costs of RThru:6 CodeSize:10 Lat:6 SizeLat:12 for: %V64I8 = call <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8> undef, <64 x i8> undef)496; BTVER2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef497;498 %I64 = call i64 @llvm.ssub.sat.i64(i64 undef, i64 undef)499 %V2I64 = call <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64> undef, <2 x i64> undef)500 %V4I64 = call <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64> undef, <4 x i64> undef)501 %V8I64 = call <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64> undef, <8 x i64> undef)502 503 %I32 = call i32 @llvm.ssub.sat.i32(i32 undef, i32 undef)504 %V4I32 = call <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32> undef, <4 x i32> undef)505 %V8I32 = call <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32> undef, <8 x i32> undef)506 %V16I32 = call <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32> undef, <16 x i32> undef)507 508 %I16 = call i16 @llvm.ssub.sat.i16(i16 undef, i16 undef)509 %V8I16 = call <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16> undef, <8 x i16> undef)510 %V16I16 = call <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16> undef, <16 x i16> undef)511 %V32I16 = call <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16> undef, <32 x i16> undef)512 513 %I8 = call i8 @llvm.ssub.sat.i8(i8 undef, i8 undef)514 %V16I8 = call <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8> undef, <16 x i8> undef)515 %V32I8 = call <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8> undef, <32 x i8> undef)516 %V64I8 = call <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8> undef, <64 x i8> undef)517 518 ret i32 undef519}520