496 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --version 42; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -mtriple=systemz-unknown -mcpu=z13 | FileCheck %s --check-prefixes=CHECK,Z133; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -mtriple=systemz-unknown -mcpu=z17 | FileCheck %s --check-prefixes=CHECK,Z174 5; Check costs of divisions by register6;7; Note: Vectorization of division/remainder is temporarily disabled for high8; vectorization factors by returning 1000.9 10; Scalar sdiv11 12define i64 @fun0(i64 %a, i64 %b) {13; CHECK-LABEL: 'fun0'14; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = sdiv i64 %a, %b15; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %r16;17 %r = sdiv i64 %a, %b18 ret i64 %r19}20 21define i32 @fun1(i32 %a, i32 %b) {22; CHECK-LABEL: 'fun1'23; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = sdiv i32 %a, %b24; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r25;26 %r = sdiv i32 %a, %b27 ret i32 %r28}29 30define i16 @fun2(i16 %a, i16 %b) {31; CHECK-LABEL: 'fun2'32; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = sdiv i16 %a, %b33; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %r34;35 %r = sdiv i16 %a, %b36 ret i16 %r37}38 39define i8 @fun3(i8 %a, i8 %b) {40; CHECK-LABEL: 'fun3'41; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = sdiv i8 %a, %b42; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %r43;44 %r = sdiv i8 %a, %b45 ret i8 %r46}47 48; Vector sdiv49 50define <2 x i64> @fun4(<2 x i64> %a, <2 x i64> %b) {51; Z13-LABEL: 'fun4'52; Z13-NEXT: Cost Model: Found an estimated cost of 47 for instruction: %r = sdiv <2 x i64> %a, %b53; Z13-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %r54;55; Z17-LABEL: 'fun4'56; Z17-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = sdiv <2 x i64> %a, %b57; Z17-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %r58;59 %r = sdiv <2 x i64> %a, %b60 ret <2 x i64> %r61}62 63define <4 x i32> @fun5(<4 x i32> %a, <4 x i32> %b) {64; Z13-LABEL: 'fun5'65; Z13-NEXT: Cost Model: Found an estimated cost of 94 for instruction: %r = sdiv <4 x i32> %a, %b66; Z13-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %r67;68; Z17-LABEL: 'fun5'69; Z17-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = sdiv <4 x i32> %a, %b70; Z17-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %r71;72 %r = sdiv <4 x i32> %a, %b73 ret <4 x i32> %r74}75 76define <2 x i32> @fun6(<2 x i32> %a, <2 x i32> %b) {77; Z13-LABEL: 'fun6'78; Z13-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %r = sdiv <2 x i32> %a, %b79; Z13-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i32> %r80;81; Z17-LABEL: 'fun6'82; Z17-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = sdiv <2 x i32> %a, %b83; Z17-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i32> %r84;85 %r = sdiv <2 x i32> %a, %b86 ret <2 x i32> %r87}88 89define <8 x i16> @fun7(<8 x i16> %a, <8 x i16> %b) {90; CHECK-LABEL: 'fun7'91; CHECK-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %r = sdiv <8 x i16> %a, %b92; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %r93;94 %r = sdiv <8 x i16> %a, %b95 ret <8 x i16> %r96}97 98define <4 x i16> @fun8(<4 x i16> %a, <4 x i16> %b) {99; CHECK-LABEL: 'fun8'100; CHECK-NEXT: Cost Model: Found an estimated cost of 94 for instruction: %r = sdiv <4 x i16> %a, %b101; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i16> %r102;103 %r = sdiv <4 x i16> %a, %b104 ret <4 x i16> %r105}106 107define <16 x i8> @fun9(<16 x i8> %a, <16 x i8> %b) {108; CHECK-LABEL: 'fun9'109; CHECK-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %r = sdiv <16 x i8> %a, %b110; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %r111;112 %r = sdiv <16 x i8> %a, %b113 ret <16 x i8> %r114}115 116define <8 x i8> @fun10(<8 x i8> %a, <8 x i8> %b) {117; CHECK-LABEL: 'fun10'118; CHECK-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %r = sdiv <8 x i8> %a, %b119; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i8> %r120;121 %r = sdiv <8 x i8> %a, %b122 ret <8 x i8> %r123}124 125; Scalar udiv126 127define i64 @fun11(i64 %a, i64 %b) {128; CHECK-LABEL: 'fun11'129; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = udiv i64 %a, %b130; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %r131;132 %r = udiv i64 %a, %b133 ret i64 %r134}135 136define i32 @fun12(i32 %a, i32 %b) {137; CHECK-LABEL: 'fun12'138; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = udiv i32 %a, %b139; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r140;141 %r = udiv i32 %a, %b142 ret i32 %r143}144 145define i16 @fun13(i16 %a, i16 %b) {146; CHECK-LABEL: 'fun13'147; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = udiv i16 %a, %b148; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %r149;150 %r = udiv i16 %a, %b151 ret i16 %r152}153 154define i8 @fun14(i8 %a, i8 %b) {155; CHECK-LABEL: 'fun14'156; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = udiv i8 %a, %b157; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %r158;159 %r = udiv i8 %a, %b160 ret i8 %r161}162 163; Vector udiv164 165define <2 x i64> @fun15(<2 x i64> %a, <2 x i64> %b) {166; Z13-LABEL: 'fun15'167; Z13-NEXT: Cost Model: Found an estimated cost of 47 for instruction: %r = udiv <2 x i64> %a, %b168; Z13-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %r169;170; Z17-LABEL: 'fun15'171; Z17-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = udiv <2 x i64> %a, %b172; Z17-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %r173;174 %r = udiv <2 x i64> %a, %b175 ret <2 x i64> %r176}177 178define <4 x i32> @fun16(<4 x i32> %a, <4 x i32> %b) {179; Z13-LABEL: 'fun16'180; Z13-NEXT: Cost Model: Found an estimated cost of 94 for instruction: %r = udiv <4 x i32> %a, %b181; Z13-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %r182;183; Z17-LABEL: 'fun16'184; Z17-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = udiv <4 x i32> %a, %b185; Z17-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %r186;187 %r = udiv <4 x i32> %a, %b188 ret <4 x i32> %r189}190 191define <2 x i32> @fun17(<2 x i32> %a, <2 x i32> %b) {192; Z13-LABEL: 'fun17'193; Z13-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %r = udiv <2 x i32> %a, %b194; Z13-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i32> %r195;196; Z17-LABEL: 'fun17'197; Z17-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = udiv <2 x i32> %a, %b198; Z17-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i32> %r199;200 %r = udiv <2 x i32> %a, %b201 ret <2 x i32> %r202}203 204define <8 x i16> @fun18(<8 x i16> %a, <8 x i16> %b) {205; CHECK-LABEL: 'fun18'206; CHECK-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %r = udiv <8 x i16> %a, %b207; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %r208;209 %r = udiv <8 x i16> %a, %b210 ret <8 x i16> %r211}212 213define <4 x i16> @fun19(<4 x i16> %a, <4 x i16> %b) {214; CHECK-LABEL: 'fun19'215; CHECK-NEXT: Cost Model: Found an estimated cost of 94 for instruction: %r = udiv <4 x i16> %a, %b216; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i16> %r217;218 %r = udiv <4 x i16> %a, %b219 ret <4 x i16> %r220}221 222define <16 x i8> @fun20(<16 x i8> %a, <16 x i8> %b) {223; CHECK-LABEL: 'fun20'224; CHECK-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %r = udiv <16 x i8> %a, %b225; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %r226;227 %r = udiv <16 x i8> %a, %b228 ret <16 x i8> %r229}230 231define <8 x i8> @fun21(<8 x i8> %a, <8 x i8> %b) {232; CHECK-LABEL: 'fun21'233; CHECK-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %r = udiv <8 x i8> %a, %b234; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i8> %r235;236 %r = udiv <8 x i8> %a, %b237 ret <8 x i8> %r238}239 240; Scalar srem241 242define i64 @fun22(i64 %a, i64 %b) {243; CHECK-LABEL: 'fun22'244; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = srem i64 %a, %b245; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %r246;247 %r = srem i64 %a, %b248 ret i64 %r249}250 251define i32 @fun23(i32 %a, i32 %b) {252; CHECK-LABEL: 'fun23'253; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = srem i32 %a, %b254; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r255;256 %r = srem i32 %a, %b257 ret i32 %r258}259 260define i16 @fun24(i16 %a, i16 %b) {261; CHECK-LABEL: 'fun24'262; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = srem i16 %a, %b263; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %r264;265 %r = srem i16 %a, %b266 ret i16 %r267}268 269define i8 @fun25(i8 %a, i8 %b) {270; CHECK-LABEL: 'fun25'271; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = srem i8 %a, %b272; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %r273;274 %r = srem i8 %a, %b275 ret i8 %r276}277 278; Vector srem279 280define <2 x i64> @fun26(<2 x i64> %a, <2 x i64> %b) {281; Z13-LABEL: 'fun26'282; Z13-NEXT: Cost Model: Found an estimated cost of 47 for instruction: %r = srem <2 x i64> %a, %b283; Z13-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %r284;285; Z17-LABEL: 'fun26'286; Z17-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = srem <2 x i64> %a, %b287; Z17-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %r288;289 %r = srem <2 x i64> %a, %b290 ret <2 x i64> %r291}292 293define <4 x i32> @fun27(<4 x i32> %a, <4 x i32> %b) {294; Z13-LABEL: 'fun27'295; Z13-NEXT: Cost Model: Found an estimated cost of 94 for instruction: %r = srem <4 x i32> %a, %b296; Z13-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %r297;298; Z17-LABEL: 'fun27'299; Z17-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = srem <4 x i32> %a, %b300; Z17-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %r301;302 %r = srem <4 x i32> %a, %b303 ret <4 x i32> %r304}305 306define <2 x i32> @fun28(<2 x i32> %a, <2 x i32> %b) {307; Z13-LABEL: 'fun28'308; Z13-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %r = srem <2 x i32> %a, %b309; Z13-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i32> %r310;311; Z17-LABEL: 'fun28'312; Z17-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = srem <2 x i32> %a, %b313; Z17-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i32> %r314;315 %r = srem <2 x i32> %a, %b316 ret <2 x i32> %r317}318 319define <8 x i16> @fun29(<8 x i16> %a, <8 x i16> %b) {320; CHECK-LABEL: 'fun29'321; CHECK-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %r = srem <8 x i16> %a, %b322; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %r323;324 %r = srem <8 x i16> %a, %b325 ret <8 x i16> %r326}327 328define <4 x i16> @fun30(<4 x i16> %a, <4 x i16> %b) {329; CHECK-LABEL: 'fun30'330; CHECK-NEXT: Cost Model: Found an estimated cost of 94 for instruction: %r = srem <4 x i16> %a, %b331; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i16> %r332;333 %r = srem <4 x i16> %a, %b334 ret <4 x i16> %r335}336 337define <16 x i8> @fun31(<16 x i8> %a, <16 x i8> %b) {338; CHECK-LABEL: 'fun31'339; CHECK-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %r = srem <16 x i8> %a, %b340; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %r341;342 %r = srem <16 x i8> %a, %b343 ret <16 x i8> %r344}345 346define <8 x i8> @fun32(<8 x i8> %a, <8 x i8> %b) {347; CHECK-LABEL: 'fun32'348; CHECK-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %r = srem <8 x i8> %a, %b349; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i8> %r350;351 %r = srem <8 x i8> %a, %b352 ret <8 x i8> %r353}354 355; Scalar urem356 357define i64 @fun33(i64 %a, i64 %b) {358; CHECK-LABEL: 'fun33'359; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = urem i64 %a, %b360; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %r361;362 %r = urem i64 %a, %b363 ret i64 %r364}365 366define i32 @fun34(i32 %a, i32 %b) {367; CHECK-LABEL: 'fun34'368; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = urem i32 %a, %b369; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %r370;371 %r = urem i32 %a, %b372 ret i32 %r373}374 375define i16 @fun35(i16 %a, i16 %b) {376; CHECK-LABEL: 'fun35'377; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = urem i16 %a, %b378; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %r379;380 %r = urem i16 %a, %b381 ret i16 %r382}383 384define i8 @fun36(i8 %a, i8 %b) {385; CHECK-LABEL: 'fun36'386; CHECK-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = urem i8 %a, %b387; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %r388;389 %r = urem i8 %a, %b390 ret i8 %r391}392 393; Vector urem394 395define <2 x i64> @fun37(<2 x i64> %a, <2 x i64> %b) {396; Z13-LABEL: 'fun37'397; Z13-NEXT: Cost Model: Found an estimated cost of 47 for instruction: %r = urem <2 x i64> %a, %b398; Z13-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %r399;400; Z17-LABEL: 'fun37'401; Z17-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = urem <2 x i64> %a, %b402; Z17-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %r403;404 %r = urem <2 x i64> %a, %b405 ret <2 x i64> %r406}407 408define <4 x i32> @fun38(<4 x i32> %a, <4 x i32> %b) {409; Z13-LABEL: 'fun38'410; Z13-NEXT: Cost Model: Found an estimated cost of 94 for instruction: %r = urem <4 x i32> %a, %b411; Z13-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %r412;413; Z17-LABEL: 'fun38'414; Z17-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = urem <4 x i32> %a, %b415; Z17-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %r416;417 %r = urem <4 x i32> %a, %b418 ret <4 x i32> %r419}420 421define <2 x i32> @fun39(<2 x i32> %a, <2 x i32> %b) {422; Z13-LABEL: 'fun39'423; Z13-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %r = urem <2 x i32> %a, %b424; Z13-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i32> %r425;426; Z17-LABEL: 'fun39'427; Z17-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %r = urem <2 x i32> %a, %b428; Z17-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i32> %r429;430 %r = urem <2 x i32> %a, %b431 ret <2 x i32> %r432}433 434define <8 x i16> @fun40(<8 x i16> %a, <8 x i16> %b) {435; CHECK-LABEL: 'fun40'436; CHECK-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %r = urem <8 x i16> %a, %b437; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %r438;439 %r = urem <8 x i16> %a, %b440 ret <8 x i16> %r441}442 443define <4 x i16> @fun41(<4 x i16> %a, <4 x i16> %b) {444; CHECK-LABEL: 'fun41'445; CHECK-NEXT: Cost Model: Found an estimated cost of 94 for instruction: %r = urem <4 x i16> %a, %b446; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i16> %r447;448 %r = urem <4 x i16> %a, %b449 ret <4 x i16> %r450}451 452define <16 x i8> @fun42(<16 x i8> %a, <16 x i8> %b) {453; CHECK-LABEL: 'fun42'454; CHECK-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %r = urem <16 x i8> %a, %b455; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %r456;457 %r = urem <16 x i8> %a, %b458 ret <16 x i8> %r459}460 461define <8 x i8> @fun43(<8 x i8> %a, <8 x i8> %b) {462; CHECK-LABEL: 'fun43'463; CHECK-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %r = urem <8 x i8> %a, %b464; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i8> %r465;466 %r = urem <8 x i8> %a, %b467 ret <8 x i8> %r468}469 470; Also test some wider inputs:471define <8 x i64> @fun44(<8 x i64> %a, <8 x i64> %b) {472; Z13-LABEL: 'fun44'473; Z13-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %r = sdiv <8 x i64> %a, %b474; Z13-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %r475;476; Z17-LABEL: 'fun44'477; Z17-NEXT: Cost Model: Found an estimated cost of 80 for instruction: %r = sdiv <8 x i64> %a, %b478; Z17-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %r479;480 %r = sdiv <8 x i64> %a, %b481 ret <8 x i64> %r482}483 484define <8 x i32> @fun45(<8 x i32> %a, <8 x i32> %b) {485; Z13-LABEL: 'fun45'486; Z13-NEXT: Cost Model: Found an estimated cost of 1000 for instruction: %r = urem <8 x i32> %a, %b487; Z13-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %r488;489; Z17-LABEL: 'fun45'490; Z17-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %r = urem <8 x i32> %a, %b491; Z17-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %r492;493 %r = urem <8 x i32> %a, %b494 ret <8 x i32> %r495}496