1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py 2; RUN: opt -cost-model -analyze -mtriple=aarch64-none-eabi < %s | FileCheck %s --check-prefix=RECIP 3; RUN: opt -cost-model -analyze -cost-kind=code-size -mtriple=aarch64-none-eabi < %s | FileCheck %s --check-prefix=SIZE 4 5declare i64 @llvm.sadd.sat.i64(i64, i64) 6declare <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64>, <2 x i64>) 7declare <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64>, <4 x i64>) 8declare <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64>, <8 x i64>) 9 10declare i32 @llvm.sadd.sat.i32(i32, i32) 11declare <2 x i32> @llvm.sadd.sat.v2i32(<2 x i32>, <2 x i32>) 12declare <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32>, <4 x i32>) 13declare <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32>, <8 x i32>) 14declare <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32>, <16 x i32>) 15 16declare i16 @llvm.sadd.sat.i16(i16, i16) 17declare <2 x i16> @llvm.sadd.sat.v2i16(<2 x i16>, <2 x i16>) 18declare <4 x i16> @llvm.sadd.sat.v4i16(<4 x i16>, <4 x i16>) 19declare <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16>, <8 x i16>) 20declare <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16>, <16 x i16>) 21declare <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16>, <32 x i16>) 22 23declare i8 @llvm.sadd.sat.i8(i8, i8) 24declare <2 x i8> @llvm.sadd.sat.v2i8(<2 x i8>, <2 x i8>) 25declare <4 x i8> @llvm.sadd.sat.v4i8(<4 x i8>, <4 x i8>) 26declare <8 x i8> @llvm.sadd.sat.v8i8(<8 x i8>, <8 x i8>) 27declare <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8>, <16 x i8>) 28declare <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8>, <32 x i8>) 29declare <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8>, <64 x i8>) 30 31define i32 @add(i32 %arg) { 32; RECIP-LABEL: 'add' 33; RECIP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I64 = call i64 @llvm.sadd.sat.i64(i64 undef, i64 undef) 34; RECIP-NEXT: Cost Model: Found an estimated cost of 26 for instruction: %V2I64 = call <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64> undef, <2 x i64> undef) 35; RECIP-NEXT: Cost Model: Found an estimated cost of 197 for instruction: %V4I64 = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> undef, <4 x i64> undef) 36; RECIP-NEXT: Cost Model: Found an estimated cost of 399 for instruction: %V8I64 = call <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64> undef, <8 x i64> undef) 37; RECIP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I32 = call i32 @llvm.sadd.sat.i32(i32 undef, i32 undef) 38; RECIP-NEXT: Cost Model: Found an estimated cost of 26 for instruction: %V2I32 = call <2 x i32> @llvm.sadd.sat.v2i32(<2 x i32> undef, <2 x i32> undef) 39; RECIP-NEXT: Cost Model: Found an estimated cost of 58 for instruction: %V4I32 = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> undef, <4 x i32> undef) 40; RECIP-NEXT: Cost Model: Found an estimated cost of 85 for instruction: %V8I32 = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> undef, <8 x i32> undef) 41; RECIP-NEXT: Cost Model: Found an estimated cost of 175 for instruction: %V16I32 = call <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32> undef, <16 x i32> undef) 42; RECIP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I16 = call i16 @llvm.sadd.sat.i16(i16 undef, i16 undef) 43; RECIP-NEXT: Cost Model: Found an estimated cost of 26 for instruction: %V2I16 = call <2 x i16> @llvm.sadd.sat.v2i16(<2 x i16> undef, <2 x i16> undef) 44; RECIP-NEXT: Cost Model: Found an estimated cost of 58 for instruction: %V4I16 = call <4 x i16> @llvm.sadd.sat.v4i16(<4 x i16> undef, <4 x i16> undef) 45; RECIP-NEXT: Cost Model: Found an estimated cost of 122 for instruction: %V8I16 = call <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16> undef, <8 x i16> undef) 46; RECIP-NEXT: Cost Model: Found an estimated cost of 165 for instruction: %V16I16 = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> undef, <16 x i16> undef) 47; RECIP-NEXT: Cost Model: Found an estimated cost of 498 for instruction: %V32I16 = call <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16> undef, <32 x i16> undef) 48; RECIP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I8 = call i8 @llvm.sadd.sat.i8(i8 undef, i8 undef) 49; RECIP-NEXT: Cost Model: Found an estimated cost of 26 for instruction: %V2I8 = call <2 x i8> @llvm.sadd.sat.v2i8(<2 x i8> undef, <2 x i8> undef) 50; RECIP-NEXT: Cost Model: Found an estimated cost of 58 for instruction: %V4I8 = call <4 x i8> @llvm.sadd.sat.v4i8(<4 x i8> undef, <4 x i8> undef) 51; RECIP-NEXT: Cost Model: Found an estimated cost of 122 for instruction: %V8I8 = call <8 x i8> @llvm.sadd.sat.v8i8(<8 x i8> undef, <8 x i8> undef) 52; RECIP-NEXT: Cost Model: Found an estimated cost of 250 for instruction: %V16I8 = call <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8> undef, <16 x i8> undef) 53; RECIP-NEXT: Cost Model: Found an estimated cost of 500 for instruction: %V32I8 = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> undef, <32 x i8> undef) 54; RECIP-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %V64I8 = call <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8> undef, <64 x i8> undef) 55; RECIP-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 56; 57; SIZE-LABEL: 'add' 58; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I64 = call i64 @llvm.sadd.sat.i64(i64 undef, i64 undef) 59; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V2I64 = call <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64> undef, <2 x i64> undef) 60; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4I64 = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> undef, <4 x i64> undef) 61; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8I64 = call <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64> undef, <8 x i64> undef) 62; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I32 = call i32 @llvm.sadd.sat.i32(i32 undef, i32 undef) 63; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V2I32 = call <2 x i32> @llvm.sadd.sat.v2i32(<2 x i32> undef, <2 x i32> undef) 64; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4I32 = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> undef, <4 x i32> undef) 65; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8I32 = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> undef, <8 x i32> undef) 66; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V16I32 = call <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32> undef, <16 x i32> undef) 67; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I16 = call i16 @llvm.sadd.sat.i16(i16 undef, i16 undef) 68; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V2I16 = call <2 x i16> @llvm.sadd.sat.v2i16(<2 x i16> undef, <2 x i16> undef) 69; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4I16 = call <4 x i16> @llvm.sadd.sat.v4i16(<4 x i16> undef, <4 x i16> undef) 70; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8I16 = call <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16> undef, <8 x i16> undef) 71; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V16I16 = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> undef, <16 x i16> undef) 72; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V32I16 = call <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16> undef, <32 x i16> undef) 73; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I8 = call i8 @llvm.sadd.sat.i8(i8 undef, i8 undef) 74; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V2I8 = call <2 x i8> @llvm.sadd.sat.v2i8(<2 x i8> undef, <2 x i8> undef) 75; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4I8 = call <4 x i8> @llvm.sadd.sat.v4i8(<4 x i8> undef, <4 x i8> undef) 76; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8I8 = call <8 x i8> @llvm.sadd.sat.v8i8(<8 x i8> undef, <8 x i8> undef) 77; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V16I8 = call <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8> undef, <16 x i8> undef) 78; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V32I8 = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> undef, <32 x i8> undef) 79; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V64I8 = call <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8> undef, <64 x i8> undef) 80; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef 81; 82 %I64 = call i64 @llvm.sadd.sat.i64(i64 undef, i64 undef) 83 %V2I64 = call <2 x i64> @llvm.sadd.sat.v2i64(<2 x i64> undef, <2 x i64> undef) 84 %V4I64 = call <4 x i64> @llvm.sadd.sat.v4i64(<4 x i64> undef, <4 x i64> undef) 85 %V8I64 = call <8 x i64> @llvm.sadd.sat.v8i64(<8 x i64> undef, <8 x i64> undef) 86 87 %I32 = call i32 @llvm.sadd.sat.i32(i32 undef, i32 undef) 88 %V2I32 = call <2 x i32> @llvm.sadd.sat.v2i32(<2 x i32> undef, <2 x i32> undef) 89 %V4I32 = call <4 x i32> @llvm.sadd.sat.v4i32(<4 x i32> undef, <4 x i32> undef) 90 %V8I32 = call <8 x i32> @llvm.sadd.sat.v8i32(<8 x i32> undef, <8 x i32> undef) 91 %V16I32 = call <16 x i32> @llvm.sadd.sat.v16i32(<16 x i32> undef, <16 x i32> undef) 92 93 %I16 = call i16 @llvm.sadd.sat.i16(i16 undef, i16 undef) 94 %V2I16 = call <2 x i16> @llvm.sadd.sat.v2i16(<2 x i16> undef, <2 x i16> undef) 95 %V4I16 = call <4 x i16> @llvm.sadd.sat.v4i16(<4 x i16> undef, <4 x i16> undef) 96 %V8I16 = call <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16> undef, <8 x i16> undef) 97 %V16I16 = call <16 x i16> @llvm.sadd.sat.v16i16(<16 x i16> undef, <16 x i16> undef) 98 %V32I16 = call <32 x i16> @llvm.sadd.sat.v32i16(<32 x i16> undef, <32 x i16> undef) 99 100 %I8 = call i8 @llvm.sadd.sat.i8(i8 undef, i8 undef) 101 %V2I8 = call <2 x i8> @llvm.sadd.sat.v2i8(<2 x i8> undef, <2 x i8> undef) 102 %V4I8 = call <4 x i8> @llvm.sadd.sat.v4i8(<4 x i8> undef, <4 x i8> undef) 103 %V8I8 = call <8 x i8> @llvm.sadd.sat.v8i8(<8 x i8> undef, <8 x i8> undef) 104 %V16I8 = call <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8> undef, <16 x i8> undef) 105 %V32I8 = call <32 x i8> @llvm.sadd.sat.v32i8(<32 x i8> undef, <32 x i8> undef) 106 %V64I8 = call <64 x i8> @llvm.sadd.sat.v64i8(<64 x i8> undef, <64 x i8> undef) 107 108 ret i32 undef 109} 110 111declare i64 @llvm.ssub.sat.i64(i64, i64) 112declare <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64>, <2 x i64>) 113declare <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64>, <4 x i64>) 114declare <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64>, <8 x i64>) 115 116declare i32 @llvm.ssub.sat.i32(i32, i32) 117declare <2 x i32> @llvm.ssub.sat.v2i32(<2 x i32>, <2 x i32>) 118declare <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32>, <4 x i32>) 119declare <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32>, <8 x i32>) 120declare <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32>, <16 x i32>) 121 122declare i16 @llvm.ssub.sat.i16(i16, i16) 123declare <2 x i16> @llvm.ssub.sat.v2i16(<2 x i16>, <2 x i16>) 124declare <4 x i16> @llvm.ssub.sat.v4i16(<4 x i16>, <4 x i16>) 125declare <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16>, <8 x i16>) 126declare <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16>, <16 x i16>) 127declare <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16>, <32 x i16>) 128 129declare i8 @llvm.ssub.sat.i8(i8, i8) 130declare <2 x i8> @llvm.ssub.sat.v2i8(<2 x i8>, <2 x i8>) 131declare <4 x i8> @llvm.ssub.sat.v4i8(<4 x i8>, <4 x i8>) 132declare <8 x i8> @llvm.ssub.sat.v8i8(<8 x i8>, <8 x i8>) 133declare <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8>, <16 x i8>) 134declare <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8>, <32 x i8>) 135declare <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8>, <64 x i8>) 136 137define i32 @sub(i32 %arg) { 138; RECIP-LABEL: 'sub' 139; RECIP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I64 = call i64 @llvm.ssub.sat.i64(i64 undef, i64 undef) 140; RECIP-NEXT: Cost Model: Found an estimated cost of 26 for instruction: %V2I64 = call <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64> undef, <2 x i64> undef) 141; RECIP-NEXT: Cost Model: Found an estimated cost of 197 for instruction: %V4I64 = call <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64> undef, <4 x i64> undef) 142; RECIP-NEXT: Cost Model: Found an estimated cost of 399 for instruction: %V8I64 = call <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64> undef, <8 x i64> undef) 143; RECIP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I32 = call i32 @llvm.ssub.sat.i32(i32 undef, i32 undef) 144; RECIP-NEXT: Cost Model: Found an estimated cost of 26 for instruction: %V2I32 = call <2 x i32> @llvm.ssub.sat.v2i32(<2 x i32> undef, <2 x i32> undef) 145; RECIP-NEXT: Cost Model: Found an estimated cost of 58 for instruction: %V4I32 = call <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32> undef, <4 x i32> undef) 146; RECIP-NEXT: Cost Model: Found an estimated cost of 85 for instruction: %V8I32 = call <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32> undef, <8 x i32> undef) 147; RECIP-NEXT: Cost Model: Found an estimated cost of 175 for instruction: %V16I32 = call <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32> undef, <16 x i32> undef) 148; RECIP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I16 = call i16 @llvm.ssub.sat.i16(i16 undef, i16 undef) 149; RECIP-NEXT: Cost Model: Found an estimated cost of 26 for instruction: %V2I16 = call <2 x i16> @llvm.ssub.sat.v2i16(<2 x i16> undef, <2 x i16> undef) 150; RECIP-NEXT: Cost Model: Found an estimated cost of 58 for instruction: %V4I16 = call <4 x i16> @llvm.ssub.sat.v4i16(<4 x i16> undef, <4 x i16> undef) 151; RECIP-NEXT: Cost Model: Found an estimated cost of 122 for instruction: %V8I16 = call <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16> undef, <8 x i16> undef) 152; RECIP-NEXT: Cost Model: Found an estimated cost of 165 for instruction: %V16I16 = call <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16> undef, <16 x i16> undef) 153; RECIP-NEXT: Cost Model: Found an estimated cost of 498 for instruction: %V32I16 = call <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16> undef, <32 x i16> undef) 154; RECIP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I8 = call i8 @llvm.ssub.sat.i8(i8 undef, i8 undef) 155; RECIP-NEXT: Cost Model: Found an estimated cost of 26 for instruction: %V2I8 = call <2 x i8> @llvm.ssub.sat.v2i8(<2 x i8> undef, <2 x i8> undef) 156; RECIP-NEXT: Cost Model: Found an estimated cost of 58 for instruction: %V4I8 = call <4 x i8> @llvm.ssub.sat.v4i8(<4 x i8> undef, <4 x i8> undef) 157; RECIP-NEXT: Cost Model: Found an estimated cost of 122 for instruction: %V8I8 = call <8 x i8> @llvm.ssub.sat.v8i8(<8 x i8> undef, <8 x i8> undef) 158; RECIP-NEXT: Cost Model: Found an estimated cost of 250 for instruction: %V16I8 = call <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8> undef, <16 x i8> undef) 159; RECIP-NEXT: Cost Model: Found an estimated cost of 500 for instruction: %V32I8 = call <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8> undef, <32 x i8> undef) 160; RECIP-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %V64I8 = call <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8> undef, <64 x i8> undef) 161; RECIP-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef 162; 163; SIZE-LABEL: 'sub' 164; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I64 = call i64 @llvm.ssub.sat.i64(i64 undef, i64 undef) 165; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V2I64 = call <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64> undef, <2 x i64> undef) 166; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4I64 = call <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64> undef, <4 x i64> undef) 167; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8I64 = call <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64> undef, <8 x i64> undef) 168; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I32 = call i32 @llvm.ssub.sat.i32(i32 undef, i32 undef) 169; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V2I32 = call <2 x i32> @llvm.ssub.sat.v2i32(<2 x i32> undef, <2 x i32> undef) 170; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4I32 = call <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32> undef, <4 x i32> undef) 171; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8I32 = call <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32> undef, <8 x i32> undef) 172; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V16I32 = call <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32> undef, <16 x i32> undef) 173; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I16 = call i16 @llvm.ssub.sat.i16(i16 undef, i16 undef) 174; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V2I16 = call <2 x i16> @llvm.ssub.sat.v2i16(<2 x i16> undef, <2 x i16> undef) 175; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4I16 = call <4 x i16> @llvm.ssub.sat.v4i16(<4 x i16> undef, <4 x i16> undef) 176; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8I16 = call <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16> undef, <8 x i16> undef) 177; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V16I16 = call <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16> undef, <16 x i16> undef) 178; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V32I16 = call <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16> undef, <32 x i16> undef) 179; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %I8 = call i8 @llvm.ssub.sat.i8(i8 undef, i8 undef) 180; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V2I8 = call <2 x i8> @llvm.ssub.sat.v2i8(<2 x i8> undef, <2 x i8> undef) 181; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4I8 = call <4 x i8> @llvm.ssub.sat.v4i8(<4 x i8> undef, <4 x i8> undef) 182; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8I8 = call <8 x i8> @llvm.ssub.sat.v8i8(<8 x i8> undef, <8 x i8> undef) 183; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V16I8 = call <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8> undef, <16 x i8> undef) 184; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V32I8 = call <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8> undef, <32 x i8> undef) 185; SIZE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V64I8 = call <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8> undef, <64 x i8> undef) 186; SIZE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef 187; 188 %I64 = call i64 @llvm.ssub.sat.i64(i64 undef, i64 undef) 189 %V2I64 = call <2 x i64> @llvm.ssub.sat.v2i64(<2 x i64> undef, <2 x i64> undef) 190 %V4I64 = call <4 x i64> @llvm.ssub.sat.v4i64(<4 x i64> undef, <4 x i64> undef) 191 %V8I64 = call <8 x i64> @llvm.ssub.sat.v8i64(<8 x i64> undef, <8 x i64> undef) 192 193 %I32 = call i32 @llvm.ssub.sat.i32(i32 undef, i32 undef) 194 %V2I32 = call <2 x i32> @llvm.ssub.sat.v2i32(<2 x i32> undef, <2 x i32> undef) 195 %V4I32 = call <4 x i32> @llvm.ssub.sat.v4i32(<4 x i32> undef, <4 x i32> undef) 196 %V8I32 = call <8 x i32> @llvm.ssub.sat.v8i32(<8 x i32> undef, <8 x i32> undef) 197 %V16I32 = call <16 x i32> @llvm.ssub.sat.v16i32(<16 x i32> undef, <16 x i32> undef) 198 199 %I16 = call i16 @llvm.ssub.sat.i16(i16 undef, i16 undef) 200 %V2I16 = call <2 x i16> @llvm.ssub.sat.v2i16(<2 x i16> undef, <2 x i16> undef) 201 %V4I16 = call <4 x i16> @llvm.ssub.sat.v4i16(<4 x i16> undef, <4 x i16> undef) 202 %V8I16 = call <8 x i16> @llvm.ssub.sat.v8i16(<8 x i16> undef, <8 x i16> undef) 203 %V16I16 = call <16 x i16> @llvm.ssub.sat.v16i16(<16 x i16> undef, <16 x i16> undef) 204 %V32I16 = call <32 x i16> @llvm.ssub.sat.v32i16(<32 x i16> undef, <32 x i16> undef) 205 206 %I8 = call i8 @llvm.ssub.sat.i8(i8 undef, i8 undef) 207 %V2I8 = call <2 x i8> @llvm.ssub.sat.v2i8(<2 x i8> undef, <2 x i8> undef) 208 %V4I8 = call <4 x i8> @llvm.ssub.sat.v4i8(<4 x i8> undef, <4 x i8> undef) 209 %V8I8 = call <8 x i8> @llvm.ssub.sat.v8i8(<8 x i8> undef, <8 x i8> undef) 210 %V16I8 = call <16 x i8> @llvm.ssub.sat.v16i8(<16 x i8> undef, <16 x i8> undef) 211 %V32I8 = call <32 x i8> @llvm.ssub.sat.v32i8(<32 x i8> undef, <32 x i8> undef) 212 %V64I8 = call <64 x i8> @llvm.ssub.sat.v64i8(<64 x i8> undef, <64 x i8> undef) 213 214 ret i32 undef 215} 216