ifeq ($(strip $(ISA)), SSE)
    __ISA_SSE__=true
    __SIMD_WIDTH_DBL__=2
else ifeq ($(strip $(ISA)), AVX)
    __ISA_AVX__=true
    __SIMD_WIDTH_DBL__=4
else ifeq ($(strip $(ISA)), AVX_FMA)
    __ISA_AVX__=true
    __ISA_AVX_FMA__=true
    __SIMD_WIDTH_DBL__=4
else ifeq ($(strip $(ISA)), AVX2)
    #__SIMD_KERNEL__=true
    __ISA_AVX2__=true
    __SIMD_WIDTH_DBL__=4
else ifeq ($(strip $(ISA)), AVX512)
    __ISA_AVX512__=true
    __SIMD_WIDTH_DBL__=8
    ifeq ($(strip $(DATA_TYPE)), DP)
        __SIMD_KERNEL__=true
    endif
endif

# SIMD width is specified in double-precision, hence it may
# need to be adjusted for single-precision
ifeq ($(strip $(DATA_TYPE)), SP)
    VECTOR_WIDTH=$(shell echo $$(( $(__SIMD_WIDTH_DBL__) * 2 )))
else
    VECTOR_WIDTH=$(__SIMD_WIDTH_DBL__)
endif
