brintos

brintos / llvm-project-archived public Read only

0
0
Text · 49.0 KiB · a579eb3 Raw
653 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py2; RUN: opt -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=aarch64 < %s | FileCheck %s --check-prefixes=CHECK,CHECK-NOF163; RUN: opt -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mtriple=aarch64 -mattr=+fullfp16 < %s | FileCheck %s --check-prefixes=CHECK,CHECK-F164 5target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"6 7define void @umin() {8; CHECK-LABEL: 'umin'9; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i8 = call i8 @llvm.umin.i8(i8 undef, i8 undef)10; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i16 = call i16 @llvm.umin.i16(i16 undef, i16 undef)11; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i32 = call i32 @llvm.umin.i32(i32 undef, i32 undef)12; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i64 = call i64 @llvm.umin.i64(i64 undef, i64 undef)13; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V1i8 = call <1 x i8> @llvm.umin.v1i8(<1 x i8> undef, <1 x i8> undef)14; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V3i8 = call <3 x i8> @llvm.umin.v3i8(<3 x i8> undef, <3 x i8> undef)15; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4i8 = call <4 x i8> @llvm.umin.v4i8(<4 x i8> undef, <4 x i8> undef)16; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V8i8 = call <8 x i8> @llvm.umin.v8i8(<8 x i8> undef, <8 x i8> undef)17; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V16i8 = call <16 x i8> @llvm.umin.v16i8(<16 x i8> undef, <16 x i8> undef)18; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V32i8 = call <32 x i8> @llvm.umin.v32i8(<32 x i8> undef, <32 x i8> undef)19; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V64i8 = call <64 x i8> @llvm.umin.v64i8(<64 x i8> undef, <64 x i8> undef)20; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2i16 = call <2 x i16> @llvm.umin.v2i16(<2 x i16> undef, <2 x i16> undef)21; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4i16 = call <4 x i16> @llvm.umin.v4i16(<4 x i16> undef, <4 x i16> undef)22; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V8i16 = call <8 x i16> @llvm.umin.v8i16(<8 x i16> undef, <8 x i16> undef)23; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V16i16 = call <16 x i16> @llvm.umin.v16i16(<16 x i16> undef, <16 x i16> undef)24; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2i32 = call <2 x i32> @llvm.umin.v2i32(<2 x i32> undef, <2 x i32> undef)25; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4i32 = call <4 x i32> @llvm.umin.v4i32(<4 x i32> undef, <4 x i32> undef)26; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V8i32 = call <8 x i32> @llvm.umin.v8i32(<8 x i32> undef, <8 x i32> undef)27; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V2i64 = call <2 x i64> @llvm.umin.v2i64(<2 x i64> undef, <2 x i64> undef)28; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V4i64 = call <4 x i64> @llvm.umin.v4i64(<4 x i64> undef, <4 x i64> undef)29; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void30;31  %i8 = call i8 @llvm.umin.i8(i8 undef, i8 undef)32  %i16 = call i16 @llvm.umin.i16(i16 undef, i16 undef)33  %i32 = call i32 @llvm.umin.i32(i32 undef, i32 undef)34  %i64 = call i64 @llvm.umin.i64(i64 undef, i64 undef)35  %V1i8 = call <1 x i8> @llvm.umin.v1i8(<1 x i8> undef, <1 x i8> undef)36  %V3i8 = call <3 x i8> @llvm.umin.v3i8(<3 x i8> undef, <3 x i8> undef)37  %V4i8 = call <4 x i8> @llvm.umin.v4i8(<4 x i8> undef, <4 x i8> undef)38  %V8i8 = call <8 x i8> @llvm.umin.v8i8(<8 x i8> undef, <8 x i8> undef)39  %V16i8 = call <16 x i8> @llvm.umin.v16i8(<16 x i8> undef, <16 x i8> undef)40  %V32i8 = call <32 x i8> @llvm.umin.v32i8(<32 x i8> undef, <32 x i8> undef)41  %V64i8 = call <64 x i8> @llvm.umin.v64i8(<64 x i8> undef, <64 x i8> undef)42  %V2i16 = call <2 x i16> @llvm.umin.v2i16(<2 x i16> undef, <2 x i16> undef)43  %V4i16 = call <4 x i16> @llvm.umin.v4i16(<4 x i16> undef, <4 x i16> undef)44  %V8i16 = call <8 x i16> @llvm.umin.v8i16(<8 x i16> undef, <8 x i16> undef)45  %V16i16 = call <16 x i16> @llvm.umin.v16i16(<16 x i16> undef, <16 x i16> undef)46  %V2i32 = call <2 x i32> @llvm.umin.v2i32(<2 x i32> undef, <2 x i32> undef)47  %V4i32 = call <4 x i32> @llvm.umin.v4i32(<4 x i32> undef, <4 x i32> undef)48  %V8i32 = call <8 x i32> @llvm.umin.v8i32(<8 x i32> undef, <8 x i32> undef)49  %V2i64 = call <2 x i64> @llvm.umin.v2i64(<2 x i64> undef, <2 x i64> undef)50  %V4i64 = call <4 x i64> @llvm.umin.v4i64(<4 x i64> undef, <4 x i64> undef)51  ret void52}53 54define void @umax() {55; CHECK-LABEL: 'umax'56; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i8 = call i8 @llvm.umax.i8(i8 undef, i8 undef)57; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i16 = call i16 @llvm.umax.i16(i16 undef, i16 undef)58; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i32 = call i32 @llvm.umax.i32(i32 undef, i32 undef)59; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i64 = call i64 @llvm.umax.i64(i64 undef, i64 undef)60; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V1i8 = call <1 x i8> @llvm.umax.v1i8(<1 x i8> undef, <1 x i8> undef)61; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V3i8 = call <3 x i8> @llvm.umax.v3i8(<3 x i8> undef, <3 x i8> undef)62; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4i8 = call <4 x i8> @llvm.umax.v4i8(<4 x i8> undef, <4 x i8> undef)63; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V8i8 = call <8 x i8> @llvm.umax.v8i8(<8 x i8> undef, <8 x i8> undef)64; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V16i8 = call <16 x i8> @llvm.umax.v16i8(<16 x i8> undef, <16 x i8> undef)65; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V32i8 = call <32 x i8> @llvm.umax.v32i8(<32 x i8> undef, <32 x i8> undef)66; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V64i8 = call <64 x i8> @llvm.umax.v64i8(<64 x i8> undef, <64 x i8> undef)67; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2i16 = call <2 x i16> @llvm.umax.v2i16(<2 x i16> undef, <2 x i16> undef)68; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4i16 = call <4 x i16> @llvm.umax.v4i16(<4 x i16> undef, <4 x i16> undef)69; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V8i16 = call <8 x i16> @llvm.umax.v8i16(<8 x i16> undef, <8 x i16> undef)70; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V16i16 = call <16 x i16> @llvm.umax.v16i16(<16 x i16> undef, <16 x i16> undef)71; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2i32 = call <2 x i32> @llvm.umax.v2i32(<2 x i32> undef, <2 x i32> undef)72; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4i32 = call <4 x i32> @llvm.umax.v4i32(<4 x i32> undef, <4 x i32> undef)73; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V8i32 = call <8 x i32> @llvm.umax.v8i32(<8 x i32> undef, <8 x i32> undef)74; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V2i64 = call <2 x i64> @llvm.umax.v2i64(<2 x i64> undef, <2 x i64> undef)75; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V4i64 = call <4 x i64> @llvm.umax.v4i64(<4 x i64> undef, <4 x i64> undef)76; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void77;78  %i8 = call i8 @llvm.umax.i8(i8 undef, i8 undef)79  %i16 = call i16 @llvm.umax.i16(i16 undef, i16 undef)80  %i32 = call i32 @llvm.umax.i32(i32 undef, i32 undef)81  %i64 = call i64 @llvm.umax.i64(i64 undef, i64 undef)82  %V1i8 = call <1 x i8> @llvm.umax.v1i8(<1 x i8> undef, <1 x i8> undef)83  %V3i8 = call <3 x i8> @llvm.umax.v3i8(<3 x i8> undef, <3 x i8> undef)84  %V4i8 = call <4 x i8> @llvm.umax.v4i8(<4 x i8> undef, <4 x i8> undef)85  %V8i8 = call <8 x i8> @llvm.umax.v8i8(<8 x i8> undef, <8 x i8> undef)86  %V16i8 = call <16 x i8> @llvm.umax.v16i8(<16 x i8> undef, <16 x i8> undef)87  %V32i8 = call <32 x i8> @llvm.umax.v32i8(<32 x i8> undef, <32 x i8> undef)88  %V64i8 = call <64 x i8> @llvm.umax.v64i8(<64 x i8> undef, <64 x i8> undef)89  %V2i16 = call <2 x i16> @llvm.umax.v2i16(<2 x i16> undef, <2 x i16> undef)90  %V4i16 = call <4 x i16> @llvm.umax.v4i16(<4 x i16> undef, <4 x i16> undef)91  %V8i16 = call <8 x i16> @llvm.umax.v8i16(<8 x i16> undef, <8 x i16> undef)92  %V16i16 = call <16 x i16> @llvm.umax.v16i16(<16 x i16> undef, <16 x i16> undef)93  %V2i32 = call <2 x i32> @llvm.umax.v2i32(<2 x i32> undef, <2 x i32> undef)94  %V4i32 = call <4 x i32> @llvm.umax.v4i32(<4 x i32> undef, <4 x i32> undef)95  %V8i32 = call <8 x i32> @llvm.umax.v8i32(<8 x i32> undef, <8 x i32> undef)96  %V2i64 = call <2 x i64> @llvm.umax.v2i64(<2 x i64> undef, <2 x i64> undef)97  %V4i64 = call <4 x i64> @llvm.umax.v4i64(<4 x i64> undef, <4 x i64> undef)98  ret void99}100 101define void @smin() {102; CHECK-LABEL: 'smin'103; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i8 = call i8 @llvm.smin.i8(i8 undef, i8 undef)104; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i16 = call i16 @llvm.smin.i16(i16 undef, i16 undef)105; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i32 = call i32 @llvm.smin.i32(i32 undef, i32 undef)106; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i64 = call i64 @llvm.smin.i64(i64 undef, i64 undef)107; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V1i8 = call <1 x i8> @llvm.smin.v1i8(<1 x i8> undef, <1 x i8> undef)108; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V3i8 = call <3 x i8> @llvm.smin.v3i8(<3 x i8> undef, <3 x i8> undef)109; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4i8 = call <4 x i8> @llvm.smin.v4i8(<4 x i8> undef, <4 x i8> undef)110; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V8i8 = call <8 x i8> @llvm.smin.v8i8(<8 x i8> undef, <8 x i8> undef)111; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V16i8 = call <16 x i8> @llvm.smin.v16i8(<16 x i8> undef, <16 x i8> undef)112; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V32i8 = call <32 x i8> @llvm.smin.v32i8(<32 x i8> undef, <32 x i8> undef)113; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V64i8 = call <64 x i8> @llvm.smin.v64i8(<64 x i8> undef, <64 x i8> undef)114; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2i16 = call <2 x i16> @llvm.smin.v2i16(<2 x i16> undef, <2 x i16> undef)115; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4i16 = call <4 x i16> @llvm.smin.v4i16(<4 x i16> undef, <4 x i16> undef)116; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V8i16 = call <8 x i16> @llvm.smin.v8i16(<8 x i16> undef, <8 x i16> undef)117; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V16i16 = call <16 x i16> @llvm.smin.v16i16(<16 x i16> undef, <16 x i16> undef)118; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2i32 = call <2 x i32> @llvm.smin.v2i32(<2 x i32> undef, <2 x i32> undef)119; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4i32 = call <4 x i32> @llvm.smin.v4i32(<4 x i32> undef, <4 x i32> undef)120; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V8i32 = call <8 x i32> @llvm.smin.v8i32(<8 x i32> undef, <8 x i32> undef)121; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V2i64 = call <2 x i64> @llvm.smin.v2i64(<2 x i64> undef, <2 x i64> undef)122; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V4i64 = call <4 x i64> @llvm.smin.v4i64(<4 x i64> undef, <4 x i64> undef)123; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void124;125  %i8 = call i8 @llvm.smin.i8(i8 undef, i8 undef)126  %i16 = call i16 @llvm.smin.i16(i16 undef, i16 undef)127  %i32 = call i32 @llvm.smin.i32(i32 undef, i32 undef)128  %i64 = call i64 @llvm.smin.i64(i64 undef, i64 undef)129  %V1i8 = call <1 x i8> @llvm.smin.v1i8(<1 x i8> undef, <1 x i8> undef)130  %V3i8 = call <3 x i8> @llvm.smin.v3i8(<3 x i8> undef, <3 x i8> undef)131  %V4i8 = call <4 x i8> @llvm.smin.v4i8(<4 x i8> undef, <4 x i8> undef)132  %V8i8 = call <8 x i8> @llvm.smin.v8i8(<8 x i8> undef, <8 x i8> undef)133  %V16i8 = call <16 x i8> @llvm.smin.v16i8(<16 x i8> undef, <16 x i8> undef)134  %V32i8 = call <32 x i8> @llvm.smin.v32i8(<32 x i8> undef, <32 x i8> undef)135  %V64i8 = call <64 x i8> @llvm.smin.v64i8(<64 x i8> undef, <64 x i8> undef)136  %V2i16 = call <2 x i16> @llvm.smin.v2i16(<2 x i16> undef, <2 x i16> undef)137  %V4i16 = call <4 x i16> @llvm.smin.v4i16(<4 x i16> undef, <4 x i16> undef)138  %V8i16 = call <8 x i16> @llvm.smin.v8i16(<8 x i16> undef, <8 x i16> undef)139  %V16i16 = call <16 x i16> @llvm.smin.v16i16(<16 x i16> undef, <16 x i16> undef)140  %V2i32 = call <2 x i32> @llvm.smin.v2i32(<2 x i32> undef, <2 x i32> undef)141  %V4i32 = call <4 x i32> @llvm.smin.v4i32(<4 x i32> undef, <4 x i32> undef)142  %V8i32 = call <8 x i32> @llvm.smin.v8i32(<8 x i32> undef, <8 x i32> undef)143  %V2i64 = call <2 x i64> @llvm.smin.v2i64(<2 x i64> undef, <2 x i64> undef)144  %V4i64 = call <4 x i64> @llvm.smin.v4i64(<4 x i64> undef, <4 x i64> undef)145  ret void146}147 148define void @smax() {149; CHECK-LABEL: 'smax'150; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i8 = call i8 @llvm.smax.i8(i8 undef, i8 undef)151; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i16 = call i16 @llvm.smax.i16(i16 undef, i16 undef)152; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i32 = call i32 @llvm.smax.i32(i32 undef, i32 undef)153; CHECK-NEXT:  Cost Model: Found costs of 2 for: %i64 = call i64 @llvm.smax.i64(i64 undef, i64 undef)154; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V1i8 = call <1 x i8> @llvm.smax.v1i8(<1 x i8> undef, <1 x i8> undef)155; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V3i8 = call <3 x i8> @llvm.smax.v3i8(<3 x i8> undef, <3 x i8> undef)156; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4i8 = call <4 x i8> @llvm.smax.v4i8(<4 x i8> undef, <4 x i8> undef)157; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V8i8 = call <8 x i8> @llvm.smax.v8i8(<8 x i8> undef, <8 x i8> undef)158; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V16i8 = call <16 x i8> @llvm.smax.v16i8(<16 x i8> undef, <16 x i8> undef)159; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V32i8 = call <32 x i8> @llvm.smax.v32i8(<32 x i8> undef, <32 x i8> undef)160; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V64i8 = call <64 x i8> @llvm.smax.v64i8(<64 x i8> undef, <64 x i8> undef)161; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2i16 = call <2 x i16> @llvm.smax.v2i16(<2 x i16> undef, <2 x i16> undef)162; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4i16 = call <4 x i16> @llvm.smax.v4i16(<4 x i16> undef, <4 x i16> undef)163; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V8i16 = call <8 x i16> @llvm.smax.v8i16(<8 x i16> undef, <8 x i16> undef)164; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V16i16 = call <16 x i16> @llvm.smax.v16i16(<16 x i16> undef, <16 x i16> undef)165; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2i32 = call <2 x i32> @llvm.smax.v2i32(<2 x i32> undef, <2 x i32> undef)166; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4i32 = call <4 x i32> @llvm.smax.v4i32(<4 x i32> undef, <4 x i32> undef)167; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V8i32 = call <8 x i32> @llvm.smax.v8i32(<8 x i32> undef, <8 x i32> undef)168; CHECK-NEXT:  Cost Model: Found costs of 2 for: %V2i64 = call <2 x i64> @llvm.smax.v2i64(<2 x i64> undef, <2 x i64> undef)169; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V4i64 = call <4 x i64> @llvm.smax.v4i64(<4 x i64> undef, <4 x i64> undef)170; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void171;172  %i8 = call i8 @llvm.smax.i8(i8 undef, i8 undef)173  %i16 = call i16 @llvm.smax.i16(i16 undef, i16 undef)174  %i32 = call i32 @llvm.smax.i32(i32 undef, i32 undef)175  %i64 = call i64 @llvm.smax.i64(i64 undef, i64 undef)176  %V1i8 = call <1 x i8> @llvm.smax.v1i8(<1 x i8> undef, <1 x i8> undef)177  %V3i8 = call <3 x i8> @llvm.smax.v3i8(<3 x i8> undef, <3 x i8> undef)178  %V4i8 = call <4 x i8> @llvm.smax.v4i8(<4 x i8> undef, <4 x i8> undef)179  %V8i8 = call <8 x i8> @llvm.smax.v8i8(<8 x i8> undef, <8 x i8> undef)180  %V16i8 = call <16 x i8> @llvm.smax.v16i8(<16 x i8> undef, <16 x i8> undef)181  %V32i8 = call <32 x i8> @llvm.smax.v32i8(<32 x i8> undef, <32 x i8> undef)182  %V64i8 = call <64 x i8> @llvm.smax.v64i8(<64 x i8> undef, <64 x i8> undef)183  %V2i16 = call <2 x i16> @llvm.smax.v2i16(<2 x i16> undef, <2 x i16> undef)184  %V4i16 = call <4 x i16> @llvm.smax.v4i16(<4 x i16> undef, <4 x i16> undef)185  %V8i16 = call <8 x i16> @llvm.smax.v8i16(<8 x i16> undef, <8 x i16> undef)186  %V16i16 = call <16 x i16> @llvm.smax.v16i16(<16 x i16> undef, <16 x i16> undef)187  %V2i32 = call <2 x i32> @llvm.smax.v2i32(<2 x i32> undef, <2 x i32> undef)188  %V4i32 = call <4 x i32> @llvm.smax.v4i32(<4 x i32> undef, <4 x i32> undef)189  %V8i32 = call <8 x i32> @llvm.smax.v8i32(<8 x i32> undef, <8 x i32> undef)190  %V2i64 = call <2 x i64> @llvm.smax.v2i64(<2 x i64> undef, <2 x i64> undef)191  %V4i64 = call <4 x i64> @llvm.smax.v4i64(<4 x i64> undef, <4 x i64> undef)192  ret void193}194 195define void @minnum16() {196; CHECK-NOF16-LABEL: 'minnum16'197; CHECK-NOF16-NEXT:  Cost Model: Found costs of 1 for: %f16 = call half @llvm.minnum.f16(half undef, half undef)198; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:3 Lat:4 SizeLat:4 for: %V2f16 = call <2 x half> @llvm.minnum.v2f16(<2 x half> undef, <2 x half> undef)199; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:10 CodeSize:7 Lat:10 SizeLat:10 for: %V4f16 = call <4 x half> @llvm.minnum.v4f16(<4 x half> undef, <4 x half> undef)200; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:22 CodeSize:15 Lat:22 SizeLat:22 for: %V8f16 = call <8 x half> @llvm.minnum.v8f16(<8 x half> undef, <8 x half> undef)201; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:44 CodeSize:30 Lat:44 SizeLat:44 for: %V16f16 = call <16 x half> @llvm.minnum.v16f16(<16 x half> undef, <16 x half> undef)202; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void203;204; CHECK-F16-LABEL: 'minnum16'205; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %f16 = call half @llvm.minnum.f16(half undef, half undef)206; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %V2f16 = call <2 x half> @llvm.minnum.v2f16(<2 x half> undef, <2 x half> undef)207; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %V4f16 = call <4 x half> @llvm.minnum.v4f16(<4 x half> undef, <4 x half> undef)208; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %V8f16 = call <8 x half> @llvm.minnum.v8f16(<8 x half> undef, <8 x half> undef)209; CHECK-F16-NEXT:  Cost Model: Found costs of 4 for: %V16f16 = call <16 x half> @llvm.minnum.v16f16(<16 x half> undef, <16 x half> undef)210; CHECK-F16-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void211;212  %f16 = call half @llvm.minnum.f16(half undef, half undef)213  %V2f16 = call <2 x half> @llvm.minnum.v2f16(<2 x half> undef, <2 x half> undef)214  %V4f16 = call <4 x half> @llvm.minnum.v4f16(<4 x half> undef, <4 x half> undef)215  %V8f16 = call <8 x half> @llvm.minnum.v8f16(<8 x half> undef, <8 x half> undef)216  %V16f16 = call <16 x half> @llvm.minnum.v16f16(<16 x half> undef, <16 x half> undef)217  ret void218}219 220define void @maxnum16() {221; CHECK-NOF16-LABEL: 'maxnum16'222; CHECK-NOF16-NEXT:  Cost Model: Found costs of 1 for: %f16 = call half @llvm.maxnum.f16(half undef, half undef)223; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:3 Lat:4 SizeLat:4 for: %V2f16 = call <2 x half> @llvm.maxnum.v2f16(<2 x half> undef, <2 x half> undef)224; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:10 CodeSize:7 Lat:10 SizeLat:10 for: %V4f16 = call <4 x half> @llvm.maxnum.v4f16(<4 x half> undef, <4 x half> undef)225; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:22 CodeSize:15 Lat:22 SizeLat:22 for: %V8f16 = call <8 x half> @llvm.maxnum.v8f16(<8 x half> undef, <8 x half> undef)226; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:44 CodeSize:30 Lat:44 SizeLat:44 for: %V16f16 = call <16 x half> @llvm.maxnum.v16f16(<16 x half> undef, <16 x half> undef)227; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void228;229; CHECK-F16-LABEL: 'maxnum16'230; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %f16 = call half @llvm.maxnum.f16(half undef, half undef)231; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %V2f16 = call <2 x half> @llvm.maxnum.v2f16(<2 x half> undef, <2 x half> undef)232; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %V4f16 = call <4 x half> @llvm.maxnum.v4f16(<4 x half> undef, <4 x half> undef)233; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %V8f16 = call <8 x half> @llvm.maxnum.v8f16(<8 x half> undef, <8 x half> undef)234; CHECK-F16-NEXT:  Cost Model: Found costs of 4 for: %V16f16 = call <16 x half> @llvm.maxnum.v16f16(<16 x half> undef, <16 x half> undef)235; CHECK-F16-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void236;237  %f16 = call half @llvm.maxnum.f16(half undef, half undef)238  %V2f16 = call <2 x half> @llvm.maxnum.v2f16(<2 x half> undef, <2 x half> undef)239  %V4f16 = call <4 x half> @llvm.maxnum.v4f16(<4 x half> undef, <4 x half> undef)240  %V8f16 = call <8 x half> @llvm.maxnum.v8f16(<8 x half> undef, <8 x half> undef)241  %V16f16 = call <16 x half> @llvm.maxnum.v16f16(<16 x half> undef, <16 x half> undef)242  ret void243}244 245define void @minnum() {246; CHECK-LABEL: 'minnum'247; CHECK-NEXT:  Cost Model: Found costs of 1 for: %f32 = call float @llvm.minnum.f32(float undef, float undef)248; CHECK-NEXT:  Cost Model: Found costs of 1 for: %f64 = call double @llvm.minnum.f64(double undef, double undef)249; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2f32 = call <2 x float> @llvm.minnum.v2f32(<2 x float> undef, <2 x float> undef)250; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4f32 = call <4 x float> @llvm.minnum.v4f32(<4 x float> undef, <4 x float> undef)251; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V8f32 = call <8 x float> @llvm.minnum.v8f32(<8 x float> undef, <8 x float> undef)252; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2f64 = call <2 x double> @llvm.minnum.v2f64(<2 x double> undef, <2 x double> undef)253; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V4f64 = call <4 x double> @llvm.minnum.v4f64(<4 x double> undef, <4 x double> undef)254; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void255;256  %f32 = call float @llvm.minnum.f32(float undef, float undef)257  %f64 = call double @llvm.minnum.f64(double undef, double undef)258  %V2f32 = call <2 x float> @llvm.minnum.v2f32(<2 x float> undef, <2 x float> undef)259  %V4f32 = call <4 x float> @llvm.minnum.v4f32(<4 x float> undef, <4 x float> undef)260  %V8f32 = call <8 x float> @llvm.minnum.v8f32(<8 x float> undef, <8 x float> undef)261  %V2f64 = call <2 x double> @llvm.minnum.v2f64(<2 x double> undef, <2 x double> undef)262  %V4f64 = call <4 x double> @llvm.minnum.v4f64(<4 x double> undef, <4 x double> undef)263  ret void264}265 266define void @maxnum() {267; CHECK-LABEL: 'maxnum'268; CHECK-NEXT:  Cost Model: Found costs of 1 for: %f32 = call float @llvm.maxnum.f32(float undef, float undef)269; CHECK-NEXT:  Cost Model: Found costs of 1 for: %f64 = call double @llvm.maxnum.f64(double undef, double undef)270; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2f32 = call <2 x float> @llvm.maxnum.v2f32(<2 x float> undef, <2 x float> undef)271; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4f32 = call <4 x float> @llvm.maxnum.v4f32(<4 x float> undef, <4 x float> undef)272; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V8f32 = call <8 x float> @llvm.maxnum.v8f32(<8 x float> undef, <8 x float> undef)273; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2f64 = call <2 x double> @llvm.maxnum.v2f64(<2 x double> undef, <2 x double> undef)274; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V4f64 = call <4 x double> @llvm.maxnum.v4f64(<4 x double> undef, <4 x double> undef)275; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void276;277  %f32 = call float @llvm.maxnum.f32(float undef, float undef)278  %f64 = call double @llvm.maxnum.f64(double undef, double undef)279  %V2f32 = call <2 x float> @llvm.maxnum.v2f32(<2 x float> undef, <2 x float> undef)280  %V4f32 = call <4 x float> @llvm.maxnum.v4f32(<4 x float> undef, <4 x float> undef)281  %V8f32 = call <8 x float> @llvm.maxnum.v8f32(<8 x float> undef, <8 x float> undef)282  %V2f64 = call <2 x double> @llvm.maxnum.v2f64(<2 x double> undef, <2 x double> undef)283  %V4f64 = call <4 x double> @llvm.maxnum.v4f64(<4 x double> undef, <4 x double> undef)284  ret void285}286 287 288define void @minimum16() {289; CHECK-NOF16-LABEL: 'minimum16'290; CHECK-NOF16-NEXT:  Cost Model: Found costs of 1 for: %f16 = call half @llvm.minimum.f16(half undef, half undef)291; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:3 Lat:4 SizeLat:4 for: %V2f16 = call <2 x half> @llvm.minimum.v2f16(<2 x half> undef, <2 x half> undef)292; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:10 CodeSize:7 Lat:10 SizeLat:10 for: %V4f16 = call <4 x half> @llvm.minimum.v4f16(<4 x half> undef, <4 x half> undef)293; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:22 CodeSize:15 Lat:22 SizeLat:22 for: %V8f16 = call <8 x half> @llvm.minimum.v8f16(<8 x half> undef, <8 x half> undef)294; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:44 CodeSize:30 Lat:44 SizeLat:44 for: %V16f16 = call <16 x half> @llvm.minimum.v16f16(<16 x half> undef, <16 x half> undef)295; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void296;297; CHECK-F16-LABEL: 'minimum16'298; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %f16 = call half @llvm.minimum.f16(half undef, half undef)299; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %V2f16 = call <2 x half> @llvm.minimum.v2f16(<2 x half> undef, <2 x half> undef)300; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %V4f16 = call <4 x half> @llvm.minimum.v4f16(<4 x half> undef, <4 x half> undef)301; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %V8f16 = call <8 x half> @llvm.minimum.v8f16(<8 x half> undef, <8 x half> undef)302; CHECK-F16-NEXT:  Cost Model: Found costs of 4 for: %V16f16 = call <16 x half> @llvm.minimum.v16f16(<16 x half> undef, <16 x half> undef)303; CHECK-F16-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void304;305  %f16 = call half @llvm.minimum.f16(half undef, half undef)306  %V2f16 = call <2 x half> @llvm.minimum.v2f16(<2 x half> undef, <2 x half> undef)307  %V4f16 = call <4 x half> @llvm.minimum.v4f16(<4 x half> undef, <4 x half> undef)308  %V8f16 = call <8 x half> @llvm.minimum.v8f16(<8 x half> undef, <8 x half> undef)309  %V16f16 = call <16 x half> @llvm.minimum.v16f16(<16 x half> undef, <16 x half> undef)310  ret void311}312 313define void @maximum16() {314; CHECK-NOF16-LABEL: 'maximum16'315; CHECK-NOF16-NEXT:  Cost Model: Found costs of 1 for: %f16 = call half @llvm.maximum.f16(half undef, half undef)316; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:3 Lat:4 SizeLat:4 for: %V2f16 = call <2 x half> @llvm.maximum.v2f16(<2 x half> undef, <2 x half> undef)317; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:10 CodeSize:7 Lat:10 SizeLat:10 for: %V4f16 = call <4 x half> @llvm.maximum.v4f16(<4 x half> undef, <4 x half> undef)318; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:22 CodeSize:15 Lat:22 SizeLat:22 for: %V8f16 = call <8 x half> @llvm.maximum.v8f16(<8 x half> undef, <8 x half> undef)319; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:44 CodeSize:30 Lat:44 SizeLat:44 for: %V16f16 = call <16 x half> @llvm.maximum.v16f16(<16 x half> undef, <16 x half> undef)320; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void321;322; CHECK-F16-LABEL: 'maximum16'323; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %f16 = call half @llvm.maximum.f16(half undef, half undef)324; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %V2f16 = call <2 x half> @llvm.maximum.v2f16(<2 x half> undef, <2 x half> undef)325; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %V4f16 = call <4 x half> @llvm.maximum.v4f16(<4 x half> undef, <4 x half> undef)326; CHECK-F16-NEXT:  Cost Model: Found costs of 1 for: %V8f16 = call <8 x half> @llvm.maximum.v8f16(<8 x half> undef, <8 x half> undef)327; CHECK-F16-NEXT:  Cost Model: Found costs of 4 for: %V16f16 = call <16 x half> @llvm.maximum.v16f16(<16 x half> undef, <16 x half> undef)328; CHECK-F16-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void329;330  %f16 = call half @llvm.maximum.f16(half undef, half undef)331  %V2f16 = call <2 x half> @llvm.maximum.v2f16(<2 x half> undef, <2 x half> undef)332  %V4f16 = call <4 x half> @llvm.maximum.v4f16(<4 x half> undef, <4 x half> undef)333  %V8f16 = call <8 x half> @llvm.maximum.v8f16(<8 x half> undef, <8 x half> undef)334  %V16f16 = call <16 x half> @llvm.maximum.v16f16(<16 x half> undef, <16 x half> undef)335  ret void336}337 338define void @minimum() {339; CHECK-LABEL: 'minimum'340; CHECK-NEXT:  Cost Model: Found costs of 1 for: %f32 = call float @llvm.minimum.f32(float undef, float undef)341; CHECK-NEXT:  Cost Model: Found costs of 1 for: %f64 = call double @llvm.minimum.f64(double undef, double undef)342; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2f32 = call <2 x float> @llvm.minimum.v2f32(<2 x float> undef, <2 x float> undef)343; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4f32 = call <4 x float> @llvm.minimum.v4f32(<4 x float> undef, <4 x float> undef)344; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V8f32 = call <8 x float> @llvm.minimum.v8f32(<8 x float> undef, <8 x float> undef)345; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2f64 = call <2 x double> @llvm.minimum.v2f64(<2 x double> undef, <2 x double> undef)346; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V4f64 = call <4 x double> @llvm.minimum.v4f64(<4 x double> undef, <4 x double> undef)347; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void348;349  %f32 = call float @llvm.minimum.f32(float undef, float undef)350  %f64 = call double @llvm.minimum.f64(double undef, double undef)351  %V2f32 = call <2 x float> @llvm.minimum.v2f32(<2 x float> undef, <2 x float> undef)352  %V4f32 = call <4 x float> @llvm.minimum.v4f32(<4 x float> undef, <4 x float> undef)353  %V8f32 = call <8 x float> @llvm.minimum.v8f32(<8 x float> undef, <8 x float> undef)354  %V2f64 = call <2 x double> @llvm.minimum.v2f64(<2 x double> undef, <2 x double> undef)355  %V4f64 = call <4 x double> @llvm.minimum.v4f64(<4 x double> undef, <4 x double> undef)356  ret void357}358 359define void @maximum() {360; CHECK-LABEL: 'maximum'361; CHECK-NEXT:  Cost Model: Found costs of 1 for: %f32 = call float @llvm.maximum.f32(float undef, float undef)362; CHECK-NEXT:  Cost Model: Found costs of 1 for: %f64 = call double @llvm.maximum.f64(double undef, double undef)363; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2f32 = call <2 x float> @llvm.maximum.v2f32(<2 x float> undef, <2 x float> undef)364; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V4f32 = call <4 x float> @llvm.maximum.v4f32(<4 x float> undef, <4 x float> undef)365; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V8f32 = call <8 x float> @llvm.maximum.v8f32(<8 x float> undef, <8 x float> undef)366; CHECK-NEXT:  Cost Model: Found costs of 1 for: %V2f64 = call <2 x double> @llvm.maximum.v2f64(<2 x double> undef, <2 x double> undef)367; CHECK-NEXT:  Cost Model: Found costs of 4 for: %V4f64 = call <4 x double> @llvm.maximum.v4f64(<4 x double> undef, <4 x double> undef)368; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void369;370  %f32 = call float @llvm.maximum.f32(float undef, float undef)371  %f64 = call double @llvm.maximum.f64(double undef, double undef)372  %V2f32 = call <2 x float> @llvm.maximum.v2f32(<2 x float> undef, <2 x float> undef)373  %V4f32 = call <4 x float> @llvm.maximum.v4f32(<4 x float> undef, <4 x float> undef)374  %V8f32 = call <8 x float> @llvm.maximum.v8f32(<8 x float> undef, <8 x float> undef)375  %V2f64 = call <2 x double> @llvm.maximum.v2f64(<2 x double> undef, <2 x double> undef)376  %V4f64 = call <4 x double> @llvm.maximum.v4f64(<4 x double> undef, <4 x double> undef)377  ret void378}379 380define void @minimumnum() {381; CHECK-LABEL: 'minimumnum'382; CHECK-NEXT:  Cost Model: Found costs of 3 for: %1 = call float @llvm.minimumnum.f32(float poison, float poison)383; CHECK-NEXT:  Cost Model: Found costs of 3 for: %2 = call double @llvm.minimumnum.f64(double poison, double poison)384; CHECK-NEXT:  Cost Model: Found costs of 3 for: %3 = call <2 x float> @llvm.minimumnum.v2f32(<2 x float> poison, <2 x float> poison)385; CHECK-NEXT:  Cost Model: Found costs of 3 for: %4 = call <4 x float> @llvm.minimumnum.v4f32(<4 x float> poison, <4 x float> poison)386; CHECK-NEXT:  Cost Model: Found costs of 10 for: %5 = call <8 x float> @llvm.minimumnum.v8f32(<8 x float> poison, <8 x float> poison)387; CHECK-NEXT:  Cost Model: Found costs of 20 for: %6 = call <16 x float> @llvm.minimumnum.v16f32(<16 x float> poison, <16 x float> poison)388; CHECK-NEXT:  Cost Model: Found costs of 3 for: %7 = call <2 x double> @llvm.minimumnum.v2f64(<2 x double> poison, <2 x double> poison)389; CHECK-NEXT:  Cost Model: Found costs of 10 for: %8 = call <4 x double> @llvm.minimumnum.v4f64(<4 x double> poison, <4 x double> poison)390; CHECK-NEXT:  Cost Model: Found costs of 20 for: %9 = call <8 x double> @llvm.minimumnum.v8f64(<8 x double> poison, <8 x double> poison)391; CHECK-NEXT:  Cost Model: Found costs of 40 for: %10 = call <16 x double> @llvm.minimumnum.v16f64(<16 x double> poison, <16 x double> poison)392; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void393;394  call float @llvm.minimumnum.f32(float poison, float poison)395  call double @llvm.minimumnum.f64(double poison, double poison)396  call <2 x float> @llvm.minimumnum.v2f32(<2 x float> poison, <2 x float> poison)397  call <4 x float> @llvm.minimumnum.v4f32(<4 x float> poison, <4 x float> poison)398  call <8 x float> @llvm.minimumnum.v8f32(<8 x float> poison, <8 x float> poison)399  call <16 x float> @llvm.minimumnum.v16f32(<16 x float> poison, <16 x float> poison)400  call <2 x double> @llvm.minimumnum.v2f64(<2 x double> poison, <2 x double> poison)401  call <4 x double> @llvm.minimumnum.v4f64(<4 x double> poison, <4 x double> poison)402  call <8 x double> @llvm.minimumnum.v8f64(<8 x double> poison, <8 x double> poison)403  call <16 x double> @llvm.minimumnum.v16f64(<16 x double> poison, <16 x double> poison)404  ret void405}406 407define void @minimumnum_fp16() {408; CHECK-NOF16-LABEL: 'minimumnum_fp16'409; CHECK-NOF16-NEXT:  Cost Model: Found costs of 1 for: %1 = call half @llvm.minimumnum.f16(half poison, half poison)410; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:3 Lat:4 SizeLat:4 for: %2 = call <2 x half> @llvm.minimumnum.v2f16(<2 x half> poison, <2 x half> poison)411; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:10 CodeSize:7 Lat:10 SizeLat:10 for: %3 = call <4 x half> @llvm.minimumnum.v4f16(<4 x half> poison, <4 x half> poison)412; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:22 CodeSize:15 Lat:22 SizeLat:22 for: %4 = call <8 x half> @llvm.minimumnum.v8f16(<8 x half> poison, <8 x half> poison)413; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:44 CodeSize:30 Lat:44 SizeLat:44 for: %5 = call <16 x half> @llvm.minimumnum.v16f16(<16 x half> poison, <16 x half> poison)414; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void415;416; CHECK-F16-LABEL: 'minimumnum_fp16'417; CHECK-F16-NEXT:  Cost Model: Found costs of 3 for: %1 = call half @llvm.minimumnum.f16(half poison, half poison)418; CHECK-F16-NEXT:  Cost Model: Found costs of 3 for: %2 = call <2 x half> @llvm.minimumnum.v2f16(<2 x half> poison, <2 x half> poison)419; CHECK-F16-NEXT:  Cost Model: Found costs of 3 for: %3 = call <4 x half> @llvm.minimumnum.v4f16(<4 x half> poison, <4 x half> poison)420; CHECK-F16-NEXT:  Cost Model: Found costs of 3 for: %4 = call <8 x half> @llvm.minimumnum.v8f16(<8 x half> poison, <8 x half> poison)421; CHECK-F16-NEXT:  Cost Model: Found costs of 10 for: %5 = call <16 x half> @llvm.minimumnum.v16f16(<16 x half> poison, <16 x half> poison)422; CHECK-F16-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void423;424  call half @llvm.minimumnum.f32(half poison, half poison)425  call <2 x half> @llvm.minimumnum.v2f16(<2 x half> poison, <2 x half> poison)426  call <4 x half> @llvm.minimumnum.v4f16(<4 x half> poison, <4 x half> poison)427  call <8 x half> @llvm.minimumnum.v8f16(<8 x half> poison, <8 x half> poison)428  call <16 x half> @llvm.minimumnum.v16f16(<16 x half> poison, <16 x half> poison)429  ret void430}431 432define void @minimumnum_bf16() {433; CHECK-LABEL: 'minimumnum_bf16'434; CHECK-NEXT:  Cost Model: Found costs of 1 for: %1 = call bfloat @llvm.minimumnum.bf16(bfloat poison, bfloat poison)435; CHECK-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:3 Lat:4 SizeLat:4 for: %2 = call <2 x bfloat> @llvm.minimumnum.v2bf16(<2 x bfloat> poison, <2 x bfloat> poison)436; CHECK-NEXT:  Cost Model: Found costs of RThru:10 CodeSize:7 Lat:10 SizeLat:10 for: %3 = call <4 x bfloat> @llvm.minimumnum.v4bf16(<4 x bfloat> poison, <4 x bfloat> poison)437; CHECK-NEXT:  Cost Model: Found costs of RThru:22 CodeSize:15 Lat:22 SizeLat:22 for: %4 = call <8 x bfloat> @llvm.minimumnum.v8bf16(<8 x bfloat> poison, <8 x bfloat> poison)438; CHECK-NEXT:  Cost Model: Found costs of RThru:44 CodeSize:30 Lat:44 SizeLat:44 for: %5 = call <16 x bfloat> @llvm.minimumnum.v16bf16(<16 x bfloat> poison, <16 x bfloat> poison)439; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void440;441  call bfloat @llvm.minimumnum.f32(bfloat poison, bfloat poison)442  call <2 x bfloat> @llvm.minimumnum.v2fb16(<2 x bfloat> poison, <2 x bfloat> poison)443  call <4 x bfloat> @llvm.minimumnum.v4bf16(<4 x bfloat> poison, <4 x bfloat> poison)444  call <8 x bfloat> @llvm.minimumnum.v8bf16(<8 x bfloat> poison, <8 x bfloat> poison)445  call <16 x bfloat> @llvm.minimumnum.v6bf16(<16 x bfloat> poison, <16 x bfloat> poison)446  ret void447}448 449define void @maximumnum() {450; CHECK-LABEL: 'maximumnum'451; CHECK-NEXT:  Cost Model: Found costs of 3 for: %1 = call float @llvm.maximumnum.f32(float poison, float poison)452; CHECK-NEXT:  Cost Model: Found costs of 3 for: %2 = call double @llvm.maximumnum.f64(double poison, double poison)453; CHECK-NEXT:  Cost Model: Found costs of 3 for: %3 = call <2 x float> @llvm.maximumnum.v2f32(<2 x float> poison, <2 x float> poison)454; CHECK-NEXT:  Cost Model: Found costs of 3 for: %4 = call <4 x float> @llvm.maximumnum.v4f32(<4 x float> poison, <4 x float> poison)455; CHECK-NEXT:  Cost Model: Found costs of 10 for: %5 = call <8 x float> @llvm.maximumnum.v8f32(<8 x float> poison, <8 x float> poison)456; CHECK-NEXT:  Cost Model: Found costs of 20 for: %6 = call <16 x float> @llvm.maximumnum.v16f32(<16 x float> poison, <16 x float> poison)457; CHECK-NEXT:  Cost Model: Found costs of 3 for: %7 = call <2 x double> @llvm.maximumnum.v2f64(<2 x double> poison, <2 x double> poison)458; CHECK-NEXT:  Cost Model: Found costs of 10 for: %8 = call <4 x double> @llvm.maximumnum.v4f64(<4 x double> poison, <4 x double> poison)459; CHECK-NEXT:  Cost Model: Found costs of 20 for: %9 = call <8 x double> @llvm.maximumnum.v8f64(<8 x double> poison, <8 x double> poison)460; CHECK-NEXT:  Cost Model: Found costs of 40 for: %10 = call <16 x double> @llvm.maximumnum.v16f64(<16 x double> poison, <16 x double> poison)461; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void462;463  call float @llvm.maximumnum.f32(float poison, float poison)464  call double @llvm.maximumnum.f64(double poison, double poison)465  call <2 x float> @llvm.maximumnum.v2f32(<2 x float> poison, <2 x float> poison)466  call <4 x float> @llvm.maximumnum.v4f32(<4 x float> poison, <4 x float> poison)467  call <8 x float> @llvm.maximumnum.v8f32(<8 x float> poison, <8 x float> poison)468  call <16 x float> @llvm.maximumnum.v16f32(<16 x float> poison, <16 x float> poison)469  call <2 x double> @llvm.maximumnum.v2f64(<2 x double> poison, <2 x double> poison)470  call <4 x double> @llvm.maximumnum.v4f64(<4 x double> poison, <4 x double> poison)471  call <8 x double> @llvm.maximumnum.v8f64(<8 x double> poison, <8 x double> poison)472  call <16 x double> @llvm.maximumnum.v16f64(<16 x double> poison, <16 x double> poison)473  ret void474}475 476define void @maximumnum_fp16() {477; CHECK-NOF16-LABEL: 'maximumnum_fp16'478; CHECK-NOF16-NEXT:  Cost Model: Found costs of 1 for: %1 = call half @llvm.maximumnum.f16(half poison, half poison)479; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:3 Lat:4 SizeLat:4 for: %2 = call <2 x half> @llvm.maximumnum.v2f16(<2 x half> poison, <2 x half> poison)480; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:10 CodeSize:7 Lat:10 SizeLat:10 for: %3 = call <4 x half> @llvm.maximumnum.v4f16(<4 x half> poison, <4 x half> poison)481; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:22 CodeSize:15 Lat:22 SizeLat:22 for: %4 = call <8 x half> @llvm.maximumnum.v8f16(<8 x half> poison, <8 x half> poison)482; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:44 CodeSize:30 Lat:44 SizeLat:44 for: %5 = call <16 x half> @llvm.maximumnum.v16f16(<16 x half> poison, <16 x half> poison)483; CHECK-NOF16-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void484;485; CHECK-F16-LABEL: 'maximumnum_fp16'486; CHECK-F16-NEXT:  Cost Model: Found costs of 3 for: %1 = call half @llvm.maximumnum.f16(half poison, half poison)487; CHECK-F16-NEXT:  Cost Model: Found costs of 3 for: %2 = call <2 x half> @llvm.maximumnum.v2f16(<2 x half> poison, <2 x half> poison)488; CHECK-F16-NEXT:  Cost Model: Found costs of 3 for: %3 = call <4 x half> @llvm.maximumnum.v4f16(<4 x half> poison, <4 x half> poison)489; CHECK-F16-NEXT:  Cost Model: Found costs of 3 for: %4 = call <8 x half> @llvm.maximumnum.v8f16(<8 x half> poison, <8 x half> poison)490; CHECK-F16-NEXT:  Cost Model: Found costs of 10 for: %5 = call <16 x half> @llvm.maximumnum.v16f16(<16 x half> poison, <16 x half> poison)491; CHECK-F16-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void492;493  call half @llvm.maximumnum.f32(half poison, half poison)494  call <2 x half> @llvm.maximumnum.v2f16(<2 x half> poison, <2 x half> poison)495  call <4 x half> @llvm.maximumnum.v4f16(<4 x half> poison, <4 x half> poison)496  call <8 x half> @llvm.maximumnum.v8f16(<8 x half> poison, <8 x half> poison)497  call <16 x half> @llvm.maximumnum.v16f16(<16 x half> poison, <16 x half> poison)498  ret void499}500 501define void @maximumnum_bf16() {502; CHECK-LABEL: 'maximumnum_bf16'503; CHECK-NEXT:  Cost Model: Found costs of 1 for: %1 = call bfloat @llvm.maximumnum.bf16(bfloat poison, bfloat poison)504; CHECK-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:3 Lat:4 SizeLat:4 for: %2 = call <2 x bfloat> @llvm.maximumnum.v2bf16(<2 x bfloat> poison, <2 x bfloat> poison)505; CHECK-NEXT:  Cost Model: Found costs of RThru:10 CodeSize:7 Lat:10 SizeLat:10 for: %3 = call <4 x bfloat> @llvm.maximumnum.v4bf16(<4 x bfloat> poison, <4 x bfloat> poison)506; CHECK-NEXT:  Cost Model: Found costs of RThru:22 CodeSize:15 Lat:22 SizeLat:22 for: %4 = call <8 x bfloat> @llvm.maximumnum.v8bf16(<8 x bfloat> poison, <8 x bfloat> poison)507; CHECK-NEXT:  Cost Model: Found costs of RThru:44 CodeSize:30 Lat:44 SizeLat:44 for: %5 = call <16 x bfloat> @llvm.maximumnum.v16bf16(<16 x bfloat> poison, <16 x bfloat> poison)508; CHECK-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void509;510  call bfloat @llvm.maximumnum.f32(bfloat poison, bfloat poison)511  call <2 x bfloat> @llvm.maximumnum.v2fb16(<2 x bfloat> poison, <2 x bfloat> poison)512  call <4 x bfloat> @llvm.maximumnum.v4bf16(<4 x bfloat> poison, <4 x bfloat> poison)513  call <8 x bfloat> @llvm.maximumnum.v8bf16(<8 x bfloat> poison, <8 x bfloat> poison)514  call <16 x bfloat> @llvm.maximumnum.v6bf16(<16 x bfloat> poison, <16 x bfloat> poison)515  ret void516}517 518declare i8 @llvm.umin.i8(i8, i8)519declare i16 @llvm.umin.i16(i16, i16)520declare i32 @llvm.umin.i32(i32, i32)521declare i64 @llvm.umin.i64(i64, i64)522declare <1 x i8> @llvm.umin.v1i8(<1 x i8>, <1 x i8>)523declare <3 x i8> @llvm.umin.v3i8(<3 x i8>, <3 x i8>)524declare <4 x i8> @llvm.umin.v4i8(<4 x i8>, <4 x i8>)525declare <8 x i8> @llvm.umin.v8i8(<8 x i8>, <8 x i8>)526declare <16 x i8> @llvm.umin.v16i8(<16 x i8>, <16 x i8>)527declare <32 x i8> @llvm.umin.v32i8(<32 x i8>, <32 x i8>)528declare <64 x i8> @llvm.umin.v64i8(<64 x i8>, <64 x i8>)529declare <2 x i16> @llvm.umin.v2i16(<2 x i16>, <2 x i16>)530declare <4 x i16> @llvm.umin.v4i16(<4 x i16>, <4 x i16>)531declare <8 x i16> @llvm.umin.v8i16(<8 x i16>, <8 x i16>)532declare <16 x i16> @llvm.umin.v16i16(<16 x i16>, <16 x i16>)533declare <2 x i32> @llvm.umin.v2i32(<2 x i32>, <2 x i32>)534declare <4 x i32> @llvm.umin.v4i32(<4 x i32>, <4 x i32>)535declare <8 x i32> @llvm.umin.v8i32(<8 x i32>, <8 x i32>)536declare <2 x i64> @llvm.umin.v2i64(<2 x i64>, <2 x i64>)537declare <4 x i64> @llvm.umin.v4i64(<4 x i64>, <4 x i64>)538 539declare i8 @llvm.umax.i8(i8, i8)540declare i16 @llvm.umax.i16(i16, i16)541declare i32 @llvm.umax.i32(i32, i32)542declare i64 @llvm.umax.i64(i64, i64)543declare <1 x i8> @llvm.umax.v1i8(<1 x i8>, <1 x i8>)544declare <3 x i8> @llvm.umax.v3i8(<3 x i8>, <3 x i8>)545declare <4 x i8> @llvm.umax.v4i8(<4 x i8>, <4 x i8>)546declare <8 x i8> @llvm.umax.v8i8(<8 x i8>, <8 x i8>)547declare <16 x i8> @llvm.umax.v16i8(<16 x i8>, <16 x i8>)548declare <32 x i8> @llvm.umax.v32i8(<32 x i8>, <32 x i8>)549declare <64 x i8> @llvm.umax.v64i8(<64 x i8>, <64 x i8>)550declare <2 x i16> @llvm.umax.v2i16(<2 x i16>, <2 x i16>)551declare <4 x i16> @llvm.umax.v4i16(<4 x i16>, <4 x i16>)552declare <8 x i16> @llvm.umax.v8i16(<8 x i16>, <8 x i16>)553declare <16 x i16> @llvm.umax.v16i16(<16 x i16>, <16 x i16>)554declare <2 x i32> @llvm.umax.v2i32(<2 x i32>, <2 x i32>)555declare <4 x i32> @llvm.umax.v4i32(<4 x i32>, <4 x i32>)556declare <8 x i32> @llvm.umax.v8i32(<8 x i32>, <8 x i32>)557declare <2 x i64> @llvm.umax.v2i64(<2 x i64>, <2 x i64>)558declare <4 x i64> @llvm.umax.v4i64(<4 x i64>, <4 x i64>)559 560declare i8 @llvm.smin.i8(i8, i8)561declare i16 @llvm.smin.i16(i16, i16)562declare i32 @llvm.smin.i32(i32, i32)563declare i64 @llvm.smin.i64(i64, i64)564declare <1 x i8> @llvm.smin.v1i8(<1 x i8>, <1 x i8>)565declare <3 x i8> @llvm.smin.v3i8(<3 x i8>, <3 x i8>)566declare <4 x i8> @llvm.smin.v4i8(<4 x i8>, <4 x i8>)567declare <8 x i8> @llvm.smin.v8i8(<8 x i8>, <8 x i8>)568declare <16 x i8> @llvm.smin.v16i8(<16 x i8>, <16 x i8>)569declare <32 x i8> @llvm.smin.v32i8(<32 x i8>, <32 x i8>)570declare <64 x i8> @llvm.smin.v64i8(<64 x i8>, <64 x i8>)571declare <2 x i16> @llvm.smin.v2i16(<2 x i16>, <2 x i16>)572declare <4 x i16> @llvm.smin.v4i16(<4 x i16>, <4 x i16>)573declare <8 x i16> @llvm.smin.v8i16(<8 x i16>, <8 x i16>)574declare <16 x i16> @llvm.smin.v16i16(<16 x i16>, <16 x i16>)575declare <2 x i32> @llvm.smin.v2i32(<2 x i32>, <2 x i32>)576declare <4 x i32> @llvm.smin.v4i32(<4 x i32>, <4 x i32>)577declare <8 x i32> @llvm.smin.v8i32(<8 x i32>, <8 x i32>)578declare <2 x i64> @llvm.smin.v2i64(<2 x i64>, <2 x i64>)579declare <4 x i64> @llvm.smin.v4i64(<4 x i64>, <4 x i64>)580 581declare i8 @llvm.smax.i8(i8, i8)582declare i16 @llvm.smax.i16(i16, i16)583declare i32 @llvm.smax.i32(i32, i32)584declare i64 @llvm.smax.i64(i64, i64)585declare <1 x i8> @llvm.smax.v1i8(<1 x i8>, <1 x i8>)586declare <3 x i8> @llvm.smax.v3i8(<3 x i8>, <3 x i8>)587declare <4 x i8> @llvm.smax.v4i8(<4 x i8>, <4 x i8>)588declare <8 x i8> @llvm.smax.v8i8(<8 x i8>, <8 x i8>)589declare <16 x i8> @llvm.smax.v16i8(<16 x i8>, <16 x i8>)590declare <32 x i8> @llvm.smax.v32i8(<32 x i8>, <32 x i8>)591declare <64 x i8> @llvm.smax.v64i8(<64 x i8>, <64 x i8>)592declare <2 x i16> @llvm.smax.v2i16(<2 x i16>, <2 x i16>)593declare <4 x i16> @llvm.smax.v4i16(<4 x i16>, <4 x i16>)594declare <8 x i16> @llvm.smax.v8i16(<8 x i16>, <8 x i16>)595declare <16 x i16> @llvm.smax.v16i16(<16 x i16>, <16 x i16>)596declare <2 x i32> @llvm.smax.v2i32(<2 x i32>, <2 x i32>)597declare <4 x i32> @llvm.smax.v4i32(<4 x i32>, <4 x i32>)598declare <8 x i32> @llvm.smax.v8i32(<8 x i32>, <8 x i32>)599declare <2 x i64> @llvm.smax.v2i64(<2 x i64>, <2 x i64>)600declare <4 x i64> @llvm.smax.v4i64(<4 x i64>, <4 x i64>)601 602declare half @llvm.minnum.f16(half, half)603declare float @llvm.minnum.f32(float, float)604declare double @llvm.minnum.f64(double, double)605declare <2 x half> @llvm.minnum.v2f16(<2 x half>, <2 x half>)606declare <4 x half> @llvm.minnum.v4f16(<4 x half>, <4 x half>)607declare <8 x half> @llvm.minnum.v8f16(<8 x half>, <8 x half>)608declare <16 x half> @llvm.minnum.v16f16(<16 x half>, <16 x half>)609declare <2 x float> @llvm.minnum.v2f32(<2 x float>, <2 x float>)610declare <4 x float> @llvm.minnum.v4f32(<4 x float>, <4 x float>)611declare <8 x float> @llvm.minnum.v8f32(<8 x float>, <8 x float>)612declare <2 x double> @llvm.minnum.v2f64(<2 x double>, <2 x double>)613declare <4 x double> @llvm.minnum.v4f64(<4 x double>, <4 x double>)614 615declare half @llvm.maxnum.f16(half, half)616declare float @llvm.maxnum.f32(float, float)617declare double @llvm.maxnum.f64(double, double)618declare <2 x half> @llvm.maxnum.v2f16(<2 x half>, <2 x half>)619declare <4 x half> @llvm.maxnum.v4f16(<4 x half>, <4 x half>)620declare <8 x half> @llvm.maxnum.v8f16(<8 x half>, <8 x half>)621declare <16 x half> @llvm.maxnum.v16f16(<16 x half>, <16 x half>)622declare <2 x float> @llvm.maxnum.v2f32(<2 x float>, <2 x float>)623declare <4 x float> @llvm.maxnum.v4f32(<4 x float>, <4 x float>)624declare <8 x float> @llvm.maxnum.v8f32(<8 x float>, <8 x float>)625declare <2 x double> @llvm.maxnum.v2f64(<2 x double>, <2 x double>)626declare <4 x double> @llvm.maxnum.v4f64(<4 x double>, <4 x double>)627 628declare half @llvm.minimum.f16(half, half)629declare float @llvm.minimum.f32(float, float)630declare double @llvm.minimum.f64(double, double)631declare <2 x half> @llvm.minimum.v2f16(<2 x half>, <2 x half>)632declare <4 x half> @llvm.minimum.v4f16(<4 x half>, <4 x half>)633declare <8 x half> @llvm.minimum.v8f16(<8 x half>, <8 x half>)634declare <16 x half> @llvm.minimum.v16f16(<16 x half>, <16 x half>)635declare <2 x float> @llvm.minimum.v2f32(<2 x float>, <2 x float>)636declare <4 x float> @llvm.minimum.v4f32(<4 x float>, <4 x float>)637declare <8 x float> @llvm.minimum.v8f32(<8 x float>, <8 x float>)638declare <2 x double> @llvm.minimum.v2f64(<2 x double>, <2 x double>)639declare <4 x double> @llvm.minimum.v4f64(<4 x double>, <4 x double>)640 641declare half @llvm.maximum.f16(half, half)642declare float @llvm.maximum.f32(float, float)643declare double @llvm.maximum.f64(double, double)644declare <2 x half> @llvm.maximum.v2f16(<2 x half>, <2 x half>)645declare <4 x half> @llvm.maximum.v4f16(<4 x half>, <4 x half>)646declare <8 x half> @llvm.maximum.v8f16(<8 x half>, <8 x half>)647declare <16 x half> @llvm.maximum.v16f16(<16 x half>, <16 x half>)648declare <2 x float> @llvm.maximum.v2f32(<2 x float>, <2 x float>)649declare <4 x float> @llvm.maximum.v4f32(<4 x float>, <4 x float>)650declare <8 x float> @llvm.maximum.v8f32(<8 x float>, <8 x float>)651declare <2 x double> @llvm.maximum.v2f64(<2 x double>, <2 x double>)652declare <4 x double> @llvm.maximum.v4f64(<4 x double>, <4 x double>)653