+ /* To simplify the code below, represent vector types with a vector mode
+ even if MMX/SSE are not active. */
+ if (type
+ && TREE_CODE (type) == VECTOR_TYPE
+ && (bytes == 8 || bytes == 16)
+ && GET_MODE_CLASS (TYPE_MODE (type)) != MODE_VECTOR_INT
+ && GET_MODE_CLASS (TYPE_MODE (type)) != MODE_VECTOR_FLOAT)
+ {
+ enum machine_mode innermode = TYPE_MODE (TREE_TYPE (type));
+ mode = TREE_CODE (TREE_TYPE (type)) == REAL_TYPE
+ ? MIN_MODE_VECTOR_FLOAT : MIN_MODE_VECTOR_INT;
+
+ /* Get the mode which has this inner mode and number of units. */
+ while (GET_MODE_NUNITS (mode) != TYPE_VECTOR_SUBPARTS (type)
+ || GET_MODE_INNER (mode) != innermode)
+ {
+ mode = GET_MODE_WIDER_MODE (mode);
+ if (mode == VOIDmode)
+ abort ();
+ }
+ }
+