diff options
Diffstat (limited to 'gcc/c-common.c')
-rw-r--r-- | gcc/c-common.c | 48 |
1 files changed, 28 insertions, 20 deletions
diff --git a/gcc/c-common.c b/gcc/c-common.c index 29bb059..ad58594 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -1315,16 +1315,16 @@ type_for_mode (mode, unsignedp) return unsignedp ? widest_unsigned_literal_type_node : widest_integer_literal_type_node; - if (mode == TYPE_MODE (intQI_type_node)) + if (mode == QImode) return unsignedp ? unsigned_intQI_type_node : intQI_type_node; - if (mode == TYPE_MODE (intHI_type_node)) + if (mode == HImode) return unsignedp ? unsigned_intHI_type_node : intHI_type_node; - if (mode == TYPE_MODE (intSI_type_node)) + if (mode == SImode) return unsignedp ? unsigned_intSI_type_node : intSI_type_node; - if (mode == TYPE_MODE (intDI_type_node)) + if (mode == DImode) return unsignedp ? unsigned_intDI_type_node : intDI_type_node; #if HOST_BITS_PER_WIDE_INT >= 64 @@ -1348,22 +1348,30 @@ type_for_mode (mode, unsignedp) return build_pointer_type (integer_type_node); #ifdef VECTOR_MODE_SUPPORTED_P - if (mode == TYPE_MODE (V16QI_type_node) && VECTOR_MODE_SUPPORTED_P (mode)) - return V16QI_type_node; - if (mode == TYPE_MODE (V8HI_type_node) && VECTOR_MODE_SUPPORTED_P (mode)) - return V8HI_type_node; - if (mode == TYPE_MODE (V4SF_type_node) && VECTOR_MODE_SUPPORTED_P (mode)) - return V4SF_type_node; - if (mode == TYPE_MODE (V4SI_type_node) && VECTOR_MODE_SUPPORTED_P (mode)) - return V4SI_type_node; - if (mode == TYPE_MODE (V2SI_type_node) && VECTOR_MODE_SUPPORTED_P (mode)) - return V2SI_type_node; - if (mode == TYPE_MODE (V4HI_type_node) && VECTOR_MODE_SUPPORTED_P (mode)) - return V4HI_type_node; - if (mode == TYPE_MODE (V8QI_type_node) && VECTOR_MODE_SUPPORTED_P (mode)) - return V8QI_type_node; - if (mode == TYPE_MODE (V2SF_type_node) && VECTOR_MODE_SUPPORTED_P (mode)) - return V2SF_type_node; + if (VECTOR_MODE_SUPPORTED_P (mode)) + { + switch (mode) + { + case V16QImode: + return unsignedp ? unsigned_V16QI_type_node : V16QI_type_node; + case V8HImode: + return unsignedp ? unsigned_V8HI_type_node : V8HI_type_node; + case V4SImode: + return unsignedp ? unsigned_V4SI_type_node : V4SI_type_node; + case V2SImode: + return unsignedp ? unsigned_V2SI_type_node : V2SI_type_node; + case V4HImode: + return unsignedp ? unsigned_V4HI_type_node : V4HI_type_node; + case V8QImode: + return unsignedp ? unsigned_V8QI_type_node : V8QI_type_node; + case V4SFmode: + return V4SF_type_node; + case V2SFmode: + return V2SF_type_node; + default: + break; + } + } #endif return 0; |