}
}
+ assert((Scalar1 && Scalar2) ||
+ VT.getVectorNumElements() == Outputs.size() && "No scalar or vector!");
+
// Handle the scalar case first.
- if (Scalar1 && Scalar2)
+ if (!VT.isVector())
return Outputs.back();
- // Otherwise build a big vector out of the scalar elements we generated.
+ // We may have a vector type but a scalar result. Create a splat.
+ Outputs.resize(VT.getVectorNumElements(), Outputs.back());
+
+ // Build a big vector out of the scalar elements we generated.
return getNode(ISD::BUILD_VECTOR, SDLoc(), VT, Outputs);
}
; AVX: vpadd
; AVX: vpmulld
}
+
+define <2 x i16> @test12() {
+ %I8 = insertelement <2 x i16> zeroinitializer, i16 -1, i32 0
+ %I9 = insertelement <2 x i16> %I8, i16 -1, i32 1
+ %B9 = urem <2 x i16> %I9, %I9
+ ret <2 x i16> %B9
+
+; AVX-LABEL: test12:
+; AVX: xorps
+}