rtvec v = rtvec_alloc (n_elts);
for (i = 0; i < n_elts; ++i)
RTVEC_ELT (v, i)
- = GEN_INT (INTVAL (CONST_VECTOR_ELT (cop1, i)) + 1);
+ = gen_int_mode (INTVAL (CONST_VECTOR_ELT (cop1, i)) + 1,
+ eltmode);
cop1 = gen_rtx_CONST_VECTOR (mode, v);
std::swap (cop0, cop1);
code = code == LE ? GT : GTU;
rtvec v = rtvec_alloc (n_elts);
for (i = 0; i < n_elts; ++i)
RTVEC_ELT (v, i)
- = GEN_INT (INTVAL (CONST_VECTOR_ELT (cop1, i)) - 1);
+ = gen_int_mode (INTVAL (CONST_VECTOR_ELT (cop1, i)) - 1,
+ eltmode);
cop1 = gen_rtx_CONST_VECTOR (mode, v);
code = code == GE ? GT : GTU;
break;
--- /dev/null
+/* PR target/107585 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+typedef unsigned char __attribute__((__vector_size__ (16))) V;
+char c;
+void bar (int);
+
+void
+foo (void)
+{
+ bar (((V) (c <= (V){127}))[2]);
+}