"""
Copyright 2017-2018,2020 Arm Ltd.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

SPDX-License-Identifier: Apache-2.0
"""

from .issue import Issue
from ..localization import _


class IntrinsicIssue(Issue):
    def __init__(self, filename, lineno, intrinsic, function=None, description=None):
        if not description:
            description = _("architecture-specific intrinsic: %s") % intrinsic
        super().__init__(description=description, filename=filename,
                         lineno=lineno,
                         function=function)

class Avx256IntrinsicIssue(IntrinsicIssue):
    """Class for AVX-256 intrinsic issues"""
    def __init__(self, filename, lineno, intrinsic, function=None):
        description = _("architecture-specific AVX-256 intrinsic: %s") % intrinsic
        super().__init__(filename, lineno, intrinsic, function, description)

class Avx512IntrinsicIssue(IntrinsicIssue):
    """Class for AVX-512 intrinsic issues"""
    def __init__(self, filename, lineno, intrinsic, function=None):
        description = _("architecture-specific AVX-512 intrinsic: %s") % intrinsic
        super().__init__(filename, lineno, intrinsic, function, description)