@@ -264,23 +264,17 @@ define <3 x i16> @uadd_sat_v3i16(<3 x i16> %arg0, <3 x i16> %arg1) {
264264; GFX8-NEXT: bb:
265265; GFX8-NEXT: [[ARG0_2:%.*]] = extractelement <3 x i16> [[ARG0:%.*]], i64 2
266266; GFX8-NEXT: [[ARG1_2:%.*]] = extractelement <3 x i16> [[ARG1:%.*]], i64 2
267- ; GFX8-NEXT: [[TMP0:%.*]] = shufflevector <3 x i16> [[ARG0]], <3 x i16> poison, <2 x i32> <i32 0, i32 1>
268- ; GFX8-NEXT: [[TMP1:%.*]] = shufflevector <3 x i16> [[ARG1]], <3 x i16> poison, <2 x i32> <i32 0, i32 1>
269- ; GFX8-NEXT: [[TMP2:%.*]] = call <2 x i16> @llvm.uadd.sat.v2i16(<2 x i16> [[TMP0]], <2 x i16> [[TMP1]])
267+ ; GFX8-NEXT: [[TMP3:%.*]] = call <3 x i16> @llvm.uadd.sat.v3i16(<3 x i16> [[ARG0]], <3 x i16> [[ARG1]])
270268; GFX8-NEXT: [[ADD_2:%.*]] = call i16 @llvm.uadd.sat.i16(i16 [[ARG0_2]], i16 [[ARG1_2]])
271- ; GFX8-NEXT: [[TMP3:%.*]] = shufflevector <2 x i16> [[TMP2]], <2 x i16> poison, <3 x i32> <i32 0, i32 1, i32 poison>
272269; GFX8-NEXT: [[INS_2:%.*]] = insertelement <3 x i16> [[TMP3]], i16 [[ADD_2]], i64 2
273270; GFX8-NEXT: ret <3 x i16> [[INS_2]]
274271;
275272; GFX9-LABEL: @uadd_sat_v3i16(
276273; GFX9-NEXT: bb:
277274; GFX9-NEXT: [[ARG0_2:%.*]] = extractelement <3 x i16> [[ARG0:%.*]], i64 2
278275; GFX9-NEXT: [[ARG1_2:%.*]] = extractelement <3 x i16> [[ARG1:%.*]], i64 2
279- ; GFX9-NEXT: [[TMP0:%.*]] = shufflevector <3 x i16> [[ARG0]], <3 x i16> poison, <2 x i32> <i32 0, i32 1>
280- ; GFX9-NEXT: [[TMP1:%.*]] = shufflevector <3 x i16> [[ARG1]], <3 x i16> poison, <2 x i32> <i32 0, i32 1>
281- ; GFX9-NEXT: [[TMP2:%.*]] = call <2 x i16> @llvm.uadd.sat.v2i16(<2 x i16> [[TMP0]], <2 x i16> [[TMP1]])
276+ ; GFX9-NEXT: [[TMP3:%.*]] = call <3 x i16> @llvm.uadd.sat.v3i16(<3 x i16> [[ARG0]], <3 x i16> [[ARG1]])
282277; GFX9-NEXT: [[ADD_2:%.*]] = call i16 @llvm.uadd.sat.i16(i16 [[ARG0_2]], i16 [[ARG1_2]])
283- ; GFX9-NEXT: [[TMP3:%.*]] = shufflevector <2 x i16> [[TMP2]], <2 x i16> poison, <3 x i32> <i32 0, i32 1, i32 poison>
284278; GFX9-NEXT: [[INS_2:%.*]] = insertelement <3 x i16> [[TMP3]], i16 [[ADD_2]], i64 2
285279; GFX9-NEXT: ret <3 x i16> [[INS_2]]
286280;
@@ -323,24 +317,20 @@ define <4 x i16> @uadd_sat_v4i16(<4 x i16> %arg0, <4 x i16> %arg1) {
323317;
324318; GFX8-LABEL: @uadd_sat_v4i16(
325319; GFX8-NEXT: bb:
326- ; GFX8-NEXT: [[TMP0:%.*]] = shufflevector <4 x i16> [[ARG0:%.*]], <4 x i16> poison, <2 x i32> <i32 0, i32 1>
327- ; GFX8-NEXT: [[TMP1:%.*]] = shufflevector <4 x i16> [[ARG1:%.*]], <4 x i16> poison, <2 x i32> <i32 0, i32 1>
328- ; GFX8-NEXT: [[TMP2:%.*]] = call <2 x i16> @llvm.uadd.sat.v2i16(<2 x i16> [[TMP0]], <2 x i16> [[TMP1]])
329- ; GFX8-NEXT: [[TMP3:%.*]] = shufflevector <4 x i16> [[ARG0]], <4 x i16> poison, <2 x i32> <i32 2, i32 3>
320+ ; GFX8-NEXT: [[TMP0:%.*]] = call <4 x i16> @llvm.uadd.sat.v4i16(<4 x i16> [[ARG0:%.*]], <4 x i16> [[ARG2:%.*]])
321+ ; GFX8-NEXT: [[ARG1:%.*]] = call <4 x i16> @llvm.uadd.sat.v4i16(<4 x i16> [[ARG0]], <4 x i16> [[ARG2]])
330322; GFX8-NEXT: [[TMP4:%.*]] = shufflevector <4 x i16> [[ARG1]], <4 x i16> poison, <2 x i32> <i32 2, i32 3>
331- ; GFX8-NEXT: [[TMP5 :%.*]] = call <2 x i16> @llvm.uadd.sat.v2i16( <2 x i16> [[TMP3]] , <2 x i16> [[TMP4]])
332- ; GFX8-NEXT: [[INS_31:%.*]] = shufflevector <2 x i16> [[TMP2 ]], <2 x i16> [[TMP5 ]], <4 x i32> <i32 0, i32 1, i32 2 , i32 3 >
323+ ; GFX8-NEXT: [[TMP3 :%.*]] = shufflevector <2 x i16> [[TMP4]], <2 x i16> poison , <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
324+ ; GFX8-NEXT: [[INS_31:%.*]] = shufflevector <4 x i16> [[TMP0 ]], <4 x i16> [[TMP3 ]], <4 x i32> <i32 0, i32 1, i32 4 , i32 5 >
333325; GFX8-NEXT: ret <4 x i16> [[INS_31]]
334326;
335327; GFX9-LABEL: @uadd_sat_v4i16(
336328; GFX9-NEXT: bb:
337- ; GFX9-NEXT: [[TMP0:%.*]] = shufflevector <4 x i16> [[ARG0:%.*]], <4 x i16> poison, <2 x i32> <i32 0, i32 1>
338- ; GFX9-NEXT: [[TMP1:%.*]] = shufflevector <4 x i16> [[ARG1:%.*]], <4 x i16> poison, <2 x i32> <i32 0, i32 1>
339- ; GFX9-NEXT: [[TMP2:%.*]] = call <2 x i16> @llvm.uadd.sat.v2i16(<2 x i16> [[TMP0]], <2 x i16> [[TMP1]])
340- ; GFX9-NEXT: [[TMP3:%.*]] = shufflevector <4 x i16> [[ARG0]], <4 x i16> poison, <2 x i32> <i32 2, i32 3>
329+ ; GFX9-NEXT: [[TMP0:%.*]] = call <4 x i16> @llvm.uadd.sat.v4i16(<4 x i16> [[ARG0:%.*]], <4 x i16> [[ARG2:%.*]])
330+ ; GFX9-NEXT: [[ARG1:%.*]] = call <4 x i16> @llvm.uadd.sat.v4i16(<4 x i16> [[ARG0]], <4 x i16> [[ARG2]])
341331; GFX9-NEXT: [[TMP4:%.*]] = shufflevector <4 x i16> [[ARG1]], <4 x i16> poison, <2 x i32> <i32 2, i32 3>
342- ; GFX9-NEXT: [[TMP5 :%.*]] = call <2 x i16> @llvm.uadd.sat.v2i16( <2 x i16> [[TMP3]] , <2 x i16> [[TMP4]])
343- ; GFX9-NEXT: [[INS_31:%.*]] = shufflevector <2 x i16> [[TMP2 ]], <2 x i16> [[TMP5 ]], <4 x i32> <i32 0, i32 1, i32 2 , i32 3 >
332+ ; GFX9-NEXT: [[TMP3 :%.*]] = shufflevector <2 x i16> [[TMP4]], <2 x i16> poison , <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
333+ ; GFX9-NEXT: [[INS_31:%.*]] = shufflevector <4 x i16> [[TMP0 ]], <4 x i16> [[TMP3 ]], <4 x i32> <i32 0, i32 1, i32 4 , i32 5 >
344334; GFX9-NEXT: ret <4 x i16> [[INS_31]]
345335;
346336bb:
0 commit comments