brintos

brintos / llvm-project-archived public Read only

0
0
Text · 43.3 KiB · 7fc6fcf Raw
402 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py2; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+sse2 | FileCheck %s -check-prefixes=SSE23; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+ssse3 | FileCheck %s -check-prefixes=SSSE34; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+sse4.2 | FileCheck %s -check-prefixes=SSE425; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+avx | FileCheck %s -check-prefixes=AVX16; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+avx2 | FileCheck %s -check-prefixes=AVX27; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+avx512f | FileCheck %s -check-prefixes=AVX512F8; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+avx512vl,+avx512dq | FileCheck %s -check-prefixes=AVX512DQ9; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+avx512vl,+avx512bw | FileCheck %s -check-prefixes=AVX512BW10 11declare i64        @llvm.umax.i64(i64, i64)12declare <2 x i64>  @llvm.umax.v2i64(<2 x i64>, <2 x i64>)13declare <4 x i64>  @llvm.umax.v4i64(<4 x i64>, <4 x i64>)14declare <8 x i64>  @llvm.umax.v8i64(<8 x i64>, <8 x i64>)15 16declare i32        @llvm.umax.i32(i32, i32)17declare <4 x i32>  @llvm.umax.v4i32(<4 x i32>, <4 x i32>)18declare <8 x i32>  @llvm.umax.v8i32(<8 x i32>, <8 x i32>)19declare <16 x i32> @llvm.umax.v16i32(<16 x i32>, <16 x i32>)20 21declare i16        @llvm.umax.i16(i16, i16)22declare <8 x i16>  @llvm.umax.v8i16(<8 x i16>, <8 x i16>)23declare <16 x i16> @llvm.umax.v16i16(<16 x i16>, <16 x i16>)24declare <32 x i16> @llvm.umax.v32i16(<32 x i16>, <32 x i16>)25 26declare i8         @llvm.umax.i8(i8,  i8)27declare <16 x i8>  @llvm.umax.v16i8(<16 x i8>, <16 x i8>)28declare <32 x i8>  @llvm.umax.v32i8(<32 x i8>, <32 x i8>)29declare <64 x i8>  @llvm.umax.v64i8(<64 x i8>, <64 x i8>)30 31define i32 @umax(i32 %arg) {32; SSE2-LABEL: 'umax'33; SSE2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umax.i64(i64 undef, i64 undef)34; SSE2-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:15 Lat:8 SizeLat:15 for: %V2I64 = call <2 x i64> @llvm.umax.v2i64(<2 x i64> undef, <2 x i64> undef)35; SSE2-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:30 Lat:16 SizeLat:30 for: %V4I64 = call <4 x i64> @llvm.umax.v4i64(<4 x i64> undef, <4 x i64> undef)36; SSE2-NEXT:  Cost Model: Found costs of RThru:16 CodeSize:60 Lat:32 SizeLat:60 for: %V8I64 = call <8 x i64> @llvm.umax.v8i64(<8 x i64> undef, <8 x i64> undef)37; SSE2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umax.i32(i32 undef, i32 undef)38; SSE2-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:8 Lat:5 SizeLat:8 for: %V4I32 = call <4 x i32> @llvm.umax.v4i32(<4 x i32> undef, <4 x i32> undef)39; SSE2-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:16 Lat:10 SizeLat:16 for: %V8I32 = call <8 x i32> @llvm.umax.v8i32(<8 x i32> undef, <8 x i32> undef)40; SSE2-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:32 Lat:20 SizeLat:32 for: %V16I32 = call <16 x i32> @llvm.umax.v16i32(<16 x i32> undef, <16 x i32> undef)41; SSE2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umax.i16(i16 undef, i16 undef)42; SSE2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:3 Lat:3 SizeLat:3 for: %V8I16 = call <8 x i16> @llvm.umax.v8i16(<8 x i16> undef, <8 x i16> undef)43; SSE2-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:6 Lat:6 SizeLat:6 for: %V16I16 = call <16 x i16> @llvm.umax.v16i16(<16 x i16> undef, <16 x i16> undef)44; SSE2-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:12 Lat:12 SizeLat:12 for: %V32I16 = call <32 x i16> @llvm.umax.v32i16(<32 x i16> undef, <32 x i16> undef)45; SSE2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umax.i8(i8 undef, i8 undef)46; SSE2-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umax.v16i8(<16 x i8> undef, <16 x i8> undef)47; SSE2-NEXT:  Cost Model: Found costs of 2 for: %V32I8 = call <32 x i8> @llvm.umax.v32i8(<32 x i8> undef, <32 x i8> undef)48; SSE2-NEXT:  Cost Model: Found costs of 4 for: %V64I8 = call <64 x i8> @llvm.umax.v64i8(<64 x i8> undef, <64 x i8> undef)49; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef50;51; SSSE3-LABEL: 'umax'52; SSSE3-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umax.i64(i64 undef, i64 undef)53; SSSE3-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:15 Lat:8 SizeLat:15 for: %V2I64 = call <2 x i64> @llvm.umax.v2i64(<2 x i64> undef, <2 x i64> undef)54; SSSE3-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:30 Lat:16 SizeLat:30 for: %V4I64 = call <4 x i64> @llvm.umax.v4i64(<4 x i64> undef, <4 x i64> undef)55; SSSE3-NEXT:  Cost Model: Found costs of RThru:16 CodeSize:60 Lat:32 SizeLat:60 for: %V8I64 = call <8 x i64> @llvm.umax.v8i64(<8 x i64> undef, <8 x i64> undef)56; SSSE3-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umax.i32(i32 undef, i32 undef)57; SSSE3-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:8 Lat:5 SizeLat:8 for: %V4I32 = call <4 x i32> @llvm.umax.v4i32(<4 x i32> undef, <4 x i32> undef)58; SSSE3-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:16 Lat:10 SizeLat:16 for: %V8I32 = call <8 x i32> @llvm.umax.v8i32(<8 x i32> undef, <8 x i32> undef)59; SSSE3-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:32 Lat:20 SizeLat:32 for: %V16I32 = call <16 x i32> @llvm.umax.v16i32(<16 x i32> undef, <16 x i32> undef)60; SSSE3-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umax.i16(i16 undef, i16 undef)61; SSSE3-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:3 Lat:3 SizeLat:3 for: %V8I16 = call <8 x i16> @llvm.umax.v8i16(<8 x i16> undef, <8 x i16> undef)62; SSSE3-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:6 Lat:6 SizeLat:6 for: %V16I16 = call <16 x i16> @llvm.umax.v16i16(<16 x i16> undef, <16 x i16> undef)63; SSSE3-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:12 Lat:12 SizeLat:12 for: %V32I16 = call <32 x i16> @llvm.umax.v32i16(<32 x i16> undef, <32 x i16> undef)64; SSSE3-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umax.i8(i8 undef, i8 undef)65; SSSE3-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umax.v16i8(<16 x i8> undef, <16 x i8> undef)66; SSSE3-NEXT:  Cost Model: Found costs of 2 for: %V32I8 = call <32 x i8> @llvm.umax.v32i8(<32 x i8> undef, <32 x i8> undef)67; SSSE3-NEXT:  Cost Model: Found costs of 4 for: %V64I8 = call <64 x i8> @llvm.umax.v64i8(<64 x i8> undef, <64 x i8> undef)68; SSSE3-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef69;70; SSE42-LABEL: 'umax'71; SSE42-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umax.i64(i64 undef, i64 undef)72; SSE42-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:6 Lat:11 SizeLat:7 for: %V2I64 = call <2 x i64> @llvm.umax.v2i64(<2 x i64> undef, <2 x i64> undef)73; SSE42-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:12 Lat:22 SizeLat:14 for: %V4I64 = call <4 x i64> @llvm.umax.v4i64(<4 x i64> undef, <4 x i64> undef)74; SSE42-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:24 Lat:44 SizeLat:28 for: %V8I64 = call <8 x i64> @llvm.umax.v8i64(<8 x i64> undef, <8 x i64> undef)75; SSE42-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umax.i32(i32 undef, i32 undef)76; SSE42-NEXT:  Cost Model: Found costs of 1 for: %V4I32 = call <4 x i32> @llvm.umax.v4i32(<4 x i32> undef, <4 x i32> undef)77; SSE42-NEXT:  Cost Model: Found costs of 2 for: %V8I32 = call <8 x i32> @llvm.umax.v8i32(<8 x i32> undef, <8 x i32> undef)78; SSE42-NEXT:  Cost Model: Found costs of 4 for: %V16I32 = call <16 x i32> @llvm.umax.v16i32(<16 x i32> undef, <16 x i32> undef)79; SSE42-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umax.i16(i16 undef, i16 undef)80; SSE42-NEXT:  Cost Model: Found costs of 1 for: %V8I16 = call <8 x i16> @llvm.umax.v8i16(<8 x i16> undef, <8 x i16> undef)81; SSE42-NEXT:  Cost Model: Found costs of 2 for: %V16I16 = call <16 x i16> @llvm.umax.v16i16(<16 x i16> undef, <16 x i16> undef)82; SSE42-NEXT:  Cost Model: Found costs of 4 for: %V32I16 = call <32 x i16> @llvm.umax.v32i16(<32 x i16> undef, <32 x i16> undef)83; SSE42-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umax.i8(i8 undef, i8 undef)84; SSE42-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umax.v16i8(<16 x i8> undef, <16 x i8> undef)85; SSE42-NEXT:  Cost Model: Found costs of 2 for: %V32I8 = call <32 x i8> @llvm.umax.v32i8(<32 x i8> undef, <32 x i8> undef)86; SSE42-NEXT:  Cost Model: Found costs of 4 for: %V64I8 = call <64 x i8> @llvm.umax.v64i8(<64 x i8> undef, <64 x i8> undef)87; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef88;89; AVX1-LABEL: 'umax'90; AVX1-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umax.i64(i64 undef, i64 undef)91; AVX1-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:5 Lat:8 SizeLat:7 for: %V2I64 = call <2 x i64> @llvm.umax.v2i64(<2 x i64> undef, <2 x i64> undef)92; AVX1-NEXT:  Cost Model: Found costs of RThru:9 CodeSize:11 Lat:10 SizeLat:17 for: %V4I64 = call <4 x i64> @llvm.umax.v4i64(<4 x i64> undef, <4 x i64> undef)93; AVX1-NEXT:  Cost Model: Found costs of RThru:18 CodeSize:22 Lat:20 SizeLat:34 for: %V8I64 = call <8 x i64> @llvm.umax.v8i64(<8 x i64> undef, <8 x i64> undef)94; AVX1-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umax.i32(i32 undef, i32 undef)95; AVX1-NEXT:  Cost Model: Found costs of 1 for: %V4I32 = call <4 x i32> @llvm.umax.v4i32(<4 x i32> undef, <4 x i32> undef)96; AVX1-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:5 Lat:6 SizeLat:6 for: %V8I32 = call <8 x i32> @llvm.umax.v8i32(<8 x i32> undef, <8 x i32> undef)97; AVX1-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:10 Lat:12 SizeLat:12 for: %V16I32 = call <16 x i32> @llvm.umax.v16i32(<16 x i32> undef, <16 x i32> undef)98; AVX1-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umax.i16(i16 undef, i16 undef)99; AVX1-NEXT:  Cost Model: Found costs of 1 for: %V8I16 = call <8 x i16> @llvm.umax.v8i16(<8 x i16> undef, <8 x i16> undef)100; AVX1-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:5 Lat:6 SizeLat:6 for: %V16I16 = call <16 x i16> @llvm.umax.v16i16(<16 x i16> undef, <16 x i16> undef)101; AVX1-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:10 Lat:12 SizeLat:12 for: %V32I16 = call <32 x i16> @llvm.umax.v32i16(<32 x i16> undef, <32 x i16> undef)102; AVX1-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umax.i8(i8 undef, i8 undef)103; AVX1-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umax.v16i8(<16 x i8> undef, <16 x i8> undef)104; AVX1-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:5 Lat:6 SizeLat:6 for: %V32I8 = call <32 x i8> @llvm.umax.v32i8(<32 x i8> undef, <32 x i8> undef)105; AVX1-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:10 Lat:12 SizeLat:12 for: %V64I8 = call <64 x i8> @llvm.umax.v64i8(<64 x i8> undef, <64 x i8> undef)106; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef107;108; AVX2-LABEL: 'umax'109; AVX2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umax.i64(i64 undef, i64 undef)110; AVX2-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:5 Lat:8 SizeLat:6 for: %V2I64 = call <2 x i64> @llvm.umax.v2i64(<2 x i64> undef, <2 x i64> undef)111; AVX2-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:5 Lat:8 SizeLat:8 for: %V4I64 = call <4 x i64> @llvm.umax.v4i64(<4 x i64> undef, <4 x i64> undef)112; AVX2-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:10 Lat:16 SizeLat:16 for: %V8I64 = call <8 x i64> @llvm.umax.v8i64(<8 x i64> undef, <8 x i64> undef)113; AVX2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umax.i32(i32 undef, i32 undef)114; AVX2-NEXT:  Cost Model: Found costs of 1 for: %V4I32 = call <4 x i32> @llvm.umax.v4i32(<4 x i32> undef, <4 x i32> undef)115; AVX2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V8I32 = call <8 x i32> @llvm.umax.v8i32(<8 x i32> undef, <8 x i32> undef)116; AVX2-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:2 Lat:2 SizeLat:4 for: %V16I32 = call <16 x i32> @llvm.umax.v16i32(<16 x i32> undef, <16 x i32> undef)117; AVX2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umax.i16(i16 undef, i16 undef)118; AVX2-NEXT:  Cost Model: Found costs of 1 for: %V8I16 = call <8 x i16> @llvm.umax.v8i16(<8 x i16> undef, <8 x i16> undef)119; AVX2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.umax.v16i16(<16 x i16> undef, <16 x i16> undef)120; AVX2-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:2 Lat:2 SizeLat:4 for: %V32I16 = call <32 x i16> @llvm.umax.v32i16(<32 x i16> undef, <32 x i16> undef)121; AVX2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umax.i8(i8 undef, i8 undef)122; AVX2-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umax.v16i8(<16 x i8> undef, <16 x i8> undef)123; AVX2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.umax.v32i8(<32 x i8> undef, <32 x i8> undef)124; AVX2-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:2 Lat:2 SizeLat:4 for: %V64I8 = call <64 x i8> @llvm.umax.v64i8(<64 x i8> undef, <64 x i8> undef)125; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef126;127; AVX512F-LABEL: 'umax'128; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umax.i64(i64 undef, i64 undef)129; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V2I64 = call <2 x i64> @llvm.umax.v2i64(<2 x i64> undef, <2 x i64> undef)130; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V4I64 = call <4 x i64> @llvm.umax.v4i64(<4 x i64> undef, <4 x i64> undef)131; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V8I64 = call <8 x i64> @llvm.umax.v8i64(<8 x i64> undef, <8 x i64> undef)132; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umax.i32(i32 undef, i32 undef)133; AVX512F-NEXT:  Cost Model: Found costs of 1 for: %V4I32 = call <4 x i32> @llvm.umax.v4i32(<4 x i32> undef, <4 x i32> undef)134; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V8I32 = call <8 x i32> @llvm.umax.v8i32(<8 x i32> undef, <8 x i32> undef)135; AVX512F-NEXT:  Cost Model: Found costs of 1 for: %V16I32 = call <16 x i32> @llvm.umax.v16i32(<16 x i32> undef, <16 x i32> undef)136; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umax.i16(i16 undef, i16 undef)137; AVX512F-NEXT:  Cost Model: Found costs of 1 for: %V8I16 = call <8 x i16> @llvm.umax.v8i16(<8 x i16> undef, <8 x i16> undef)138; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.umax.v16i16(<16 x i16> undef, <16 x i16> undef)139; AVX512F-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:5 Lat:7 SizeLat:5 for: %V32I16 = call <32 x i16> @llvm.umax.v32i16(<32 x i16> undef, <32 x i16> undef)140; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umax.i8(i8 undef, i8 undef)141; AVX512F-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umax.v16i8(<16 x i8> undef, <16 x i8> undef)142; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.umax.v32i8(<32 x i8> undef, <32 x i8> undef)143; AVX512F-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:5 Lat:7 SizeLat:5 for: %V64I8 = call <64 x i8> @llvm.umax.v64i8(<64 x i8> undef, <64 x i8> undef)144; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef145;146; AVX512DQ-LABEL: 'umax'147; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umax.i64(i64 undef, i64 undef)148; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V2I64 = call <2 x i64> @llvm.umax.v2i64(<2 x i64> undef, <2 x i64> undef)149; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V4I64 = call <4 x i64> @llvm.umax.v4i64(<4 x i64> undef, <4 x i64> undef)150; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V8I64 = call <8 x i64> @llvm.umax.v8i64(<8 x i64> undef, <8 x i64> undef)151; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umax.i32(i32 undef, i32 undef)152; AVX512DQ-NEXT:  Cost Model: Found costs of 1 for: %V4I32 = call <4 x i32> @llvm.umax.v4i32(<4 x i32> undef, <4 x i32> undef)153; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V8I32 = call <8 x i32> @llvm.umax.v8i32(<8 x i32> undef, <8 x i32> undef)154; AVX512DQ-NEXT:  Cost Model: Found costs of 1 for: %V16I32 = call <16 x i32> @llvm.umax.v16i32(<16 x i32> undef, <16 x i32> undef)155; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umax.i16(i16 undef, i16 undef)156; AVX512DQ-NEXT:  Cost Model: Found costs of 1 for: %V8I16 = call <8 x i16> @llvm.umax.v8i16(<8 x i16> undef, <8 x i16> undef)157; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.umax.v16i16(<16 x i16> undef, <16 x i16> undef)158; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:5 Lat:7 SizeLat:5 for: %V32I16 = call <32 x i16> @llvm.umax.v32i16(<32 x i16> undef, <32 x i16> undef)159; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umax.i8(i8 undef, i8 undef)160; AVX512DQ-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umax.v16i8(<16 x i8> undef, <16 x i8> undef)161; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.umax.v32i8(<32 x i8> undef, <32 x i8> undef)162; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:5 Lat:7 SizeLat:5 for: %V64I8 = call <64 x i8> @llvm.umax.v64i8(<64 x i8> undef, <64 x i8> undef)163; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef164;165; AVX512BW-LABEL: 'umax'166; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umax.i64(i64 undef, i64 undef)167; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V2I64 = call <2 x i64> @llvm.umax.v2i64(<2 x i64> undef, <2 x i64> undef)168; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V4I64 = call <4 x i64> @llvm.umax.v4i64(<4 x i64> undef, <4 x i64> undef)169; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V8I64 = call <8 x i64> @llvm.umax.v8i64(<8 x i64> undef, <8 x i64> undef)170; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umax.i32(i32 undef, i32 undef)171; AVX512BW-NEXT:  Cost Model: Found costs of 1 for: %V4I32 = call <4 x i32> @llvm.umax.v4i32(<4 x i32> undef, <4 x i32> undef)172; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V8I32 = call <8 x i32> @llvm.umax.v8i32(<8 x i32> undef, <8 x i32> undef)173; AVX512BW-NEXT:  Cost Model: Found costs of 1 for: %V16I32 = call <16 x i32> @llvm.umax.v16i32(<16 x i32> undef, <16 x i32> undef)174; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umax.i16(i16 undef, i16 undef)175; AVX512BW-NEXT:  Cost Model: Found costs of 1 for: %V8I16 = call <8 x i16> @llvm.umax.v8i16(<8 x i16> undef, <8 x i16> undef)176; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.umax.v16i16(<16 x i16> undef, <16 x i16> undef)177; AVX512BW-NEXT:  Cost Model: Found costs of 1 for: %V32I16 = call <32 x i16> @llvm.umax.v32i16(<32 x i16> undef, <32 x i16> undef)178; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umax.i8(i8 undef, i8 undef)179; AVX512BW-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umax.v16i8(<16 x i8> undef, <16 x i8> undef)180; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.umax.v32i8(<32 x i8> undef, <32 x i8> undef)181; AVX512BW-NEXT:  Cost Model: Found costs of 1 for: %V64I8 = call <64 x i8> @llvm.umax.v64i8(<64 x i8> undef, <64 x i8> undef)182; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef183;184  %I64 = call i64 @llvm.umax.i64(i64 undef, i64 undef)185  %V2I64 = call <2 x i64> @llvm.umax.v2i64(<2 x i64> undef, <2 x i64> undef)186  %V4I64 = call <4 x i64> @llvm.umax.v4i64(<4 x i64> undef, <4 x i64> undef)187  %V8I64 = call <8 x i64> @llvm.umax.v8i64(<8 x i64> undef, <8 x i64> undef)188 189  %I32 = call i32 @llvm.umax.i32(i32 undef, i32 undef)190  %V4I32  = call <4 x i32>  @llvm.umax.v4i32(<4 x i32> undef, <4 x i32> undef)191  %V8I32  = call <8 x i32>  @llvm.umax.v8i32(<8 x i32> undef, <8 x i32> undef)192  %V16I32 = call <16 x i32> @llvm.umax.v16i32(<16 x i32> undef, <16 x i32> undef)193 194  %I16 = call i16 @llvm.umax.i16(i16 undef, i16 undef)195  %V8I16  = call <8 x i16>  @llvm.umax.v8i16(<8 x i16> undef, <8 x i16> undef)196  %V16I16 = call <16 x i16> @llvm.umax.v16i16(<16 x i16> undef, <16 x i16> undef)197  %V32I16 = call <32 x i16> @llvm.umax.v32i16(<32 x i16> undef, <32 x i16> undef)198 199  %I8 = call i8 @llvm.umax.i8(i8 undef, i8 undef)200  %V16I8 = call <16 x i8> @llvm.umax.v16i8(<16 x i8> undef, <16 x i8> undef)201  %V32I8 = call <32 x i8> @llvm.umax.v32i8(<32 x i8> undef, <32 x i8> undef)202  %V64I8 = call <64 x i8> @llvm.umax.v64i8(<64 x i8> undef, <64 x i8> undef)203 204  ret i32 undef205}206 207declare i64        @llvm.umin.i64(i64, i64)208declare <2 x i64>  @llvm.umin.v2i64(<2 x i64>, <2 x i64>)209declare <4 x i64>  @llvm.umin.v4i64(<4 x i64>, <4 x i64>)210declare <8 x i64>  @llvm.umin.v8i64(<8 x i64>, <8 x i64>)211 212declare i32        @llvm.umin.i32(i32, i32)213declare <4 x i32>  @llvm.umin.v4i32(<4 x i32>, <4 x i32>)214declare <8 x i32>  @llvm.umin.v8i32(<8 x i32>, <8 x i32>)215declare <16 x i32> @llvm.umin.v16i32(<16 x i32>, <16 x i32>)216 217declare i16        @llvm.umin.i16(i16, i16)218declare <8 x i16>  @llvm.umin.v8i16(<8 x i16>, <8 x i16>)219declare <16 x i16> @llvm.umin.v16i16(<16 x i16>, <16 x i16>)220declare <32 x i16> @llvm.umin.v32i16(<32 x i16>, <32 x i16>)221 222declare i8         @llvm.umin.i8(i8,  i8)223declare <16 x i8>  @llvm.umin.v16i8(<16 x i8>, <16 x i8>)224declare <32 x i8>  @llvm.umin.v32i8(<32 x i8>, <32 x i8>)225declare <64 x i8>  @llvm.umin.v64i8(<64 x i8>, <64 x i8>)226 227define i32 @umin(i32 %arg) {228; SSE2-LABEL: 'umin'229; SSE2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umin.i64(i64 undef, i64 undef)230; SSE2-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:15 Lat:8 SizeLat:15 for: %V2I64 = call <2 x i64> @llvm.umin.v2i64(<2 x i64> undef, <2 x i64> undef)231; SSE2-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:30 Lat:16 SizeLat:30 for: %V4I64 = call <4 x i64> @llvm.umin.v4i64(<4 x i64> undef, <4 x i64> undef)232; SSE2-NEXT:  Cost Model: Found costs of RThru:16 CodeSize:60 Lat:32 SizeLat:60 for: %V8I64 = call <8 x i64> @llvm.umin.v8i64(<8 x i64> undef, <8 x i64> undef)233; SSE2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umin.i32(i32 undef, i32 undef)234; SSE2-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:8 Lat:5 SizeLat:8 for: %V4I32 = call <4 x i32> @llvm.umin.v4i32(<4 x i32> undef, <4 x i32> undef)235; SSE2-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:16 Lat:10 SizeLat:16 for: %V8I32 = call <8 x i32> @llvm.umin.v8i32(<8 x i32> undef, <8 x i32> undef)236; SSE2-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:32 Lat:20 SizeLat:32 for: %V16I32 = call <16 x i32> @llvm.umin.v16i32(<16 x i32> undef, <16 x i32> undef)237; SSE2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umin.i16(i16 undef, i16 undef)238; SSE2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:3 Lat:3 SizeLat:3 for: %V8I16 = call <8 x i16> @llvm.umin.v8i16(<8 x i16> undef, <8 x i16> undef)239; SSE2-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:6 Lat:6 SizeLat:6 for: %V16I16 = call <16 x i16> @llvm.umin.v16i16(<16 x i16> undef, <16 x i16> undef)240; SSE2-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:12 Lat:12 SizeLat:12 for: %V32I16 = call <32 x i16> @llvm.umin.v32i16(<32 x i16> undef, <32 x i16> undef)241; SSE2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umin.i8(i8 undef, i8 undef)242; SSE2-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umin.v16i8(<16 x i8> undef, <16 x i8> undef)243; SSE2-NEXT:  Cost Model: Found costs of 2 for: %V32I8 = call <32 x i8> @llvm.umin.v32i8(<32 x i8> undef, <32 x i8> undef)244; SSE2-NEXT:  Cost Model: Found costs of 4 for: %V64I8 = call <64 x i8> @llvm.umin.v64i8(<64 x i8> undef, <64 x i8> undef)245; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef246;247; SSSE3-LABEL: 'umin'248; SSSE3-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umin.i64(i64 undef, i64 undef)249; SSSE3-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:15 Lat:8 SizeLat:15 for: %V2I64 = call <2 x i64> @llvm.umin.v2i64(<2 x i64> undef, <2 x i64> undef)250; SSSE3-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:30 Lat:16 SizeLat:30 for: %V4I64 = call <4 x i64> @llvm.umin.v4i64(<4 x i64> undef, <4 x i64> undef)251; SSSE3-NEXT:  Cost Model: Found costs of RThru:16 CodeSize:60 Lat:32 SizeLat:60 for: %V8I64 = call <8 x i64> @llvm.umin.v8i64(<8 x i64> undef, <8 x i64> undef)252; SSSE3-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umin.i32(i32 undef, i32 undef)253; SSSE3-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:8 Lat:5 SizeLat:8 for: %V4I32 = call <4 x i32> @llvm.umin.v4i32(<4 x i32> undef, <4 x i32> undef)254; SSSE3-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:16 Lat:10 SizeLat:16 for: %V8I32 = call <8 x i32> @llvm.umin.v8i32(<8 x i32> undef, <8 x i32> undef)255; SSSE3-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:32 Lat:20 SizeLat:32 for: %V16I32 = call <16 x i32> @llvm.umin.v16i32(<16 x i32> undef, <16 x i32> undef)256; SSSE3-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umin.i16(i16 undef, i16 undef)257; SSSE3-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:3 Lat:3 SizeLat:3 for: %V8I16 = call <8 x i16> @llvm.umin.v8i16(<8 x i16> undef, <8 x i16> undef)258; SSSE3-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:6 Lat:6 SizeLat:6 for: %V16I16 = call <16 x i16> @llvm.umin.v16i16(<16 x i16> undef, <16 x i16> undef)259; SSSE3-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:12 Lat:12 SizeLat:12 for: %V32I16 = call <32 x i16> @llvm.umin.v32i16(<32 x i16> undef, <32 x i16> undef)260; SSSE3-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umin.i8(i8 undef, i8 undef)261; SSSE3-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umin.v16i8(<16 x i8> undef, <16 x i8> undef)262; SSSE3-NEXT:  Cost Model: Found costs of 2 for: %V32I8 = call <32 x i8> @llvm.umin.v32i8(<32 x i8> undef, <32 x i8> undef)263; SSSE3-NEXT:  Cost Model: Found costs of 4 for: %V64I8 = call <64 x i8> @llvm.umin.v64i8(<64 x i8> undef, <64 x i8> undef)264; SSSE3-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef265;266; SSE42-LABEL: 'umin'267; SSE42-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umin.i64(i64 undef, i64 undef)268; SSE42-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:6 Lat:11 SizeLat:7 for: %V2I64 = call <2 x i64> @llvm.umin.v2i64(<2 x i64> undef, <2 x i64> undef)269; SSE42-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:12 Lat:22 SizeLat:14 for: %V4I64 = call <4 x i64> @llvm.umin.v4i64(<4 x i64> undef, <4 x i64> undef)270; SSE42-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:24 Lat:44 SizeLat:28 for: %V8I64 = call <8 x i64> @llvm.umin.v8i64(<8 x i64> undef, <8 x i64> undef)271; SSE42-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umin.i32(i32 undef, i32 undef)272; SSE42-NEXT:  Cost Model: Found costs of 1 for: %V4I32 = call <4 x i32> @llvm.umin.v4i32(<4 x i32> undef, <4 x i32> undef)273; SSE42-NEXT:  Cost Model: Found costs of 2 for: %V8I32 = call <8 x i32> @llvm.umin.v8i32(<8 x i32> undef, <8 x i32> undef)274; SSE42-NEXT:  Cost Model: Found costs of 4 for: %V16I32 = call <16 x i32> @llvm.umin.v16i32(<16 x i32> undef, <16 x i32> undef)275; SSE42-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umin.i16(i16 undef, i16 undef)276; SSE42-NEXT:  Cost Model: Found costs of 1 for: %V8I16 = call <8 x i16> @llvm.umin.v8i16(<8 x i16> undef, <8 x i16> undef)277; SSE42-NEXT:  Cost Model: Found costs of 2 for: %V16I16 = call <16 x i16> @llvm.umin.v16i16(<16 x i16> undef, <16 x i16> undef)278; SSE42-NEXT:  Cost Model: Found costs of 4 for: %V32I16 = call <32 x i16> @llvm.umin.v32i16(<32 x i16> undef, <32 x i16> undef)279; SSE42-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umin.i8(i8 undef, i8 undef)280; SSE42-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umin.v16i8(<16 x i8> undef, <16 x i8> undef)281; SSE42-NEXT:  Cost Model: Found costs of 2 for: %V32I8 = call <32 x i8> @llvm.umin.v32i8(<32 x i8> undef, <32 x i8> undef)282; SSE42-NEXT:  Cost Model: Found costs of 4 for: %V64I8 = call <64 x i8> @llvm.umin.v64i8(<64 x i8> undef, <64 x i8> undef)283; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef284;285; AVX1-LABEL: 'umin'286; AVX1-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umin.i64(i64 undef, i64 undef)287; AVX1-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:5 Lat:8 SizeLat:7 for: %V2I64 = call <2 x i64> @llvm.umin.v2i64(<2 x i64> undef, <2 x i64> undef)288; AVX1-NEXT:  Cost Model: Found costs of RThru:9 CodeSize:11 Lat:10 SizeLat:17 for: %V4I64 = call <4 x i64> @llvm.umin.v4i64(<4 x i64> undef, <4 x i64> undef)289; AVX1-NEXT:  Cost Model: Found costs of RThru:18 CodeSize:22 Lat:20 SizeLat:34 for: %V8I64 = call <8 x i64> @llvm.umin.v8i64(<8 x i64> undef, <8 x i64> undef)290; AVX1-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umin.i32(i32 undef, i32 undef)291; AVX1-NEXT:  Cost Model: Found costs of 1 for: %V4I32 = call <4 x i32> @llvm.umin.v4i32(<4 x i32> undef, <4 x i32> undef)292; AVX1-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:5 Lat:6 SizeLat:6 for: %V8I32 = call <8 x i32> @llvm.umin.v8i32(<8 x i32> undef, <8 x i32> undef)293; AVX1-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:10 Lat:12 SizeLat:12 for: %V16I32 = call <16 x i32> @llvm.umin.v16i32(<16 x i32> undef, <16 x i32> undef)294; AVX1-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umin.i16(i16 undef, i16 undef)295; AVX1-NEXT:  Cost Model: Found costs of 1 for: %V8I16 = call <8 x i16> @llvm.umin.v8i16(<8 x i16> undef, <8 x i16> undef)296; AVX1-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:5 Lat:6 SizeLat:6 for: %V16I16 = call <16 x i16> @llvm.umin.v16i16(<16 x i16> undef, <16 x i16> undef)297; AVX1-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:10 Lat:12 SizeLat:12 for: %V32I16 = call <32 x i16> @llvm.umin.v32i16(<32 x i16> undef, <32 x i16> undef)298; AVX1-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umin.i8(i8 undef, i8 undef)299; AVX1-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umin.v16i8(<16 x i8> undef, <16 x i8> undef)300; AVX1-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:5 Lat:6 SizeLat:6 for: %V32I8 = call <32 x i8> @llvm.umin.v32i8(<32 x i8> undef, <32 x i8> undef)301; AVX1-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:10 Lat:12 SizeLat:12 for: %V64I8 = call <64 x i8> @llvm.umin.v64i8(<64 x i8> undef, <64 x i8> undef)302; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef303;304; AVX2-LABEL: 'umin'305; AVX2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umin.i64(i64 undef, i64 undef)306; AVX2-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:5 Lat:8 SizeLat:6 for: %V2I64 = call <2 x i64> @llvm.umin.v2i64(<2 x i64> undef, <2 x i64> undef)307; AVX2-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:5 Lat:8 SizeLat:8 for: %V4I64 = call <4 x i64> @llvm.umin.v4i64(<4 x i64> undef, <4 x i64> undef)308; AVX2-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:10 Lat:16 SizeLat:16 for: %V8I64 = call <8 x i64> @llvm.umin.v8i64(<8 x i64> undef, <8 x i64> undef)309; AVX2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umin.i32(i32 undef, i32 undef)310; AVX2-NEXT:  Cost Model: Found costs of 1 for: %V4I32 = call <4 x i32> @llvm.umin.v4i32(<4 x i32> undef, <4 x i32> undef)311; AVX2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V8I32 = call <8 x i32> @llvm.umin.v8i32(<8 x i32> undef, <8 x i32> undef)312; AVX2-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:2 Lat:2 SizeLat:4 for: %V16I32 = call <16 x i32> @llvm.umin.v16i32(<16 x i32> undef, <16 x i32> undef)313; AVX2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umin.i16(i16 undef, i16 undef)314; AVX2-NEXT:  Cost Model: Found costs of 1 for: %V8I16 = call <8 x i16> @llvm.umin.v8i16(<8 x i16> undef, <8 x i16> undef)315; AVX2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.umin.v16i16(<16 x i16> undef, <16 x i16> undef)316; AVX2-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:2 Lat:2 SizeLat:4 for: %V32I16 = call <32 x i16> @llvm.umin.v32i16(<32 x i16> undef, <32 x i16> undef)317; AVX2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umin.i8(i8 undef, i8 undef)318; AVX2-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umin.v16i8(<16 x i8> undef, <16 x i8> undef)319; AVX2-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.umin.v32i8(<32 x i8> undef, <32 x i8> undef)320; AVX2-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:2 Lat:2 SizeLat:4 for: %V64I8 = call <64 x i8> @llvm.umin.v64i8(<64 x i8> undef, <64 x i8> undef)321; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef322;323; AVX512F-LABEL: 'umin'324; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umin.i64(i64 undef, i64 undef)325; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V2I64 = call <2 x i64> @llvm.umin.v2i64(<2 x i64> undef, <2 x i64> undef)326; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V4I64 = call <4 x i64> @llvm.umin.v4i64(<4 x i64> undef, <4 x i64> undef)327; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V8I64 = call <8 x i64> @llvm.umin.v8i64(<8 x i64> undef, <8 x i64> undef)328; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umin.i32(i32 undef, i32 undef)329; AVX512F-NEXT:  Cost Model: Found costs of 1 for: %V4I32 = call <4 x i32> @llvm.umin.v4i32(<4 x i32> undef, <4 x i32> undef)330; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V8I32 = call <8 x i32> @llvm.umin.v8i32(<8 x i32> undef, <8 x i32> undef)331; AVX512F-NEXT:  Cost Model: Found costs of 1 for: %V16I32 = call <16 x i32> @llvm.umin.v16i32(<16 x i32> undef, <16 x i32> undef)332; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umin.i16(i16 undef, i16 undef)333; AVX512F-NEXT:  Cost Model: Found costs of 1 for: %V8I16 = call <8 x i16> @llvm.umin.v8i16(<8 x i16> undef, <8 x i16> undef)334; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.umin.v16i16(<16 x i16> undef, <16 x i16> undef)335; AVX512F-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:5 Lat:7 SizeLat:5 for: %V32I16 = call <32 x i16> @llvm.umin.v32i16(<32 x i16> undef, <32 x i16> undef)336; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umin.i8(i8 undef, i8 undef)337; AVX512F-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umin.v16i8(<16 x i8> undef, <16 x i8> undef)338; AVX512F-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.umin.v32i8(<32 x i8> undef, <32 x i8> undef)339; AVX512F-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:5 Lat:7 SizeLat:5 for: %V64I8 = call <64 x i8> @llvm.umin.v64i8(<64 x i8> undef, <64 x i8> undef)340; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef341;342; AVX512DQ-LABEL: 'umin'343; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umin.i64(i64 undef, i64 undef)344; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V2I64 = call <2 x i64> @llvm.umin.v2i64(<2 x i64> undef, <2 x i64> undef)345; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V4I64 = call <4 x i64> @llvm.umin.v4i64(<4 x i64> undef, <4 x i64> undef)346; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V8I64 = call <8 x i64> @llvm.umin.v8i64(<8 x i64> undef, <8 x i64> undef)347; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umin.i32(i32 undef, i32 undef)348; AVX512DQ-NEXT:  Cost Model: Found costs of 1 for: %V4I32 = call <4 x i32> @llvm.umin.v4i32(<4 x i32> undef, <4 x i32> undef)349; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V8I32 = call <8 x i32> @llvm.umin.v8i32(<8 x i32> undef, <8 x i32> undef)350; AVX512DQ-NEXT:  Cost Model: Found costs of 1 for: %V16I32 = call <16 x i32> @llvm.umin.v16i32(<16 x i32> undef, <16 x i32> undef)351; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umin.i16(i16 undef, i16 undef)352; AVX512DQ-NEXT:  Cost Model: Found costs of 1 for: %V8I16 = call <8 x i16> @llvm.umin.v8i16(<8 x i16> undef, <8 x i16> undef)353; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.umin.v16i16(<16 x i16> undef, <16 x i16> undef)354; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:5 Lat:7 SizeLat:5 for: %V32I16 = call <32 x i16> @llvm.umin.v32i16(<32 x i16> undef, <32 x i16> undef)355; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umin.i8(i8 undef, i8 undef)356; AVX512DQ-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umin.v16i8(<16 x i8> undef, <16 x i8> undef)357; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.umin.v32i8(<32 x i8> undef, <32 x i8> undef)358; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:5 Lat:7 SizeLat:5 for: %V64I8 = call <64 x i8> @llvm.umin.v64i8(<64 x i8> undef, <64 x i8> undef)359; AVX512DQ-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef360;361; AVX512BW-LABEL: 'umin'362; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:3 SizeLat:3 for: %I64 = call i64 @llvm.umin.i64(i64 undef, i64 undef)363; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V2I64 = call <2 x i64> @llvm.umin.v2i64(<2 x i64> undef, <2 x i64> undef)364; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V4I64 = call <4 x i64> @llvm.umin.v4i64(<4 x i64> undef, <4 x i64> undef)365; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %V8I64 = call <8 x i64> @llvm.umin.v8i64(<8 x i64> undef, <8 x i64> undef)366; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:3 for: %I32 = call i32 @llvm.umin.i32(i32 undef, i32 undef)367; AVX512BW-NEXT:  Cost Model: Found costs of 1 for: %V4I32 = call <4 x i32> @llvm.umin.v4i32(<4 x i32> undef, <4 x i32> undef)368; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V8I32 = call <8 x i32> @llvm.umin.v8i32(<8 x i32> undef, <8 x i32> undef)369; AVX512BW-NEXT:  Cost Model: Found costs of 1 for: %V16I32 = call <16 x i32> @llvm.umin.v16i32(<16 x i32> undef, <16 x i32> undef)370; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I16 = call i16 @llvm.umin.i16(i16 undef, i16 undef)371; AVX512BW-NEXT:  Cost Model: Found costs of 1 for: %V8I16 = call <8 x i16> @llvm.umin.v8i16(<8 x i16> undef, <8 x i16> undef)372; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V16I16 = call <16 x i16> @llvm.umin.v16i16(<16 x i16> undef, <16 x i16> undef)373; AVX512BW-NEXT:  Cost Model: Found costs of 1 for: %V32I16 = call <32 x i16> @llvm.umin.v32i16(<32 x i16> undef, <32 x i16> undef)374; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:4 SizeLat:4 for: %I8 = call i8 @llvm.umin.i8(i8 undef, i8 undef)375; AVX512BW-NEXT:  Cost Model: Found costs of 1 for: %V16I8 = call <16 x i8> @llvm.umin.v16i8(<16 x i8> undef, <16 x i8> undef)376; AVX512BW-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:1 SizeLat:2 for: %V32I8 = call <32 x i8> @llvm.umin.v32i8(<32 x i8> undef, <32 x i8> undef)377; AVX512BW-NEXT:  Cost Model: Found costs of 1 for: %V64I8 = call <64 x i8> @llvm.umin.v64i8(<64 x i8> undef, <64 x i8> undef)378; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 undef379;380  %I64 = call i64 @llvm.umin.i64(i64 undef, i64 undef)381  %V2I64 = call <2 x i64> @llvm.umin.v2i64(<2 x i64> undef, <2 x i64> undef)382  %V4I64 = call <4 x i64> @llvm.umin.v4i64(<4 x i64> undef, <4 x i64> undef)383  %V8I64 = call <8 x i64> @llvm.umin.v8i64(<8 x i64> undef, <8 x i64> undef)384 385  %I32 = call i32 @llvm.umin.i32(i32 undef, i32 undef)386  %V4I32  = call <4 x i32>  @llvm.umin.v4i32(<4 x i32> undef, <4 x i32> undef)387  %V8I32  = call <8 x i32>  @llvm.umin.v8i32(<8 x i32> undef, <8 x i32> undef)388  %V16I32 = call <16 x i32> @llvm.umin.v16i32(<16 x i32> undef, <16 x i32> undef)389 390  %I16 = call i16 @llvm.umin.i16(i16 undef, i16 undef)391  %V8I16  = call <8 x i16>  @llvm.umin.v8i16(<8 x i16> undef, <8 x i16> undef)392  %V16I16 = call <16 x i16> @llvm.umin.v16i16(<16 x i16> undef, <16 x i16> undef)393  %V32I16 = call <32 x i16> @llvm.umin.v32i16(<32 x i16> undef, <32 x i16> undef)394 395  %I8 = call i8 @llvm.umin.i8(i8 undef, i8 undef)396  %V16I8 = call <16 x i8> @llvm.umin.v16i8(<16 x i8> undef, <16 x i8> undef)397  %V32I8 = call <32 x i8> @llvm.umin.v32i8(<32 x i8> undef, <32 x i8> undef)398  %V64I8 = call <64 x i8> @llvm.umin.v64i8(<64 x i8> undef, <64 x i8> undef)399 400  ret i32 undef401}402