https://bugs.llvm.org/show_bug.cgi?id=34878

            Bug ID: 34878
           Summary: Can this constraint be relaxed? 'vector_size'
                    attribute requires an integer constant
           Product: clang
           Version: 5.0
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: C++
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected], [email protected]

Hi clang team,

I wanted to ask if you could relax this restriction:

```
#include <cstddef>
#include <type_traits>

template <typename scalar_t, size_t length>
struct builtin_simd
{
    using type [[gnu::vector_size(sizeof(scalar_t) * length)]] = scalar_t;
};

int main() {
    using scalar_t = int;
    constexpr size_t length = 4u;
    using int32x4_t [[gnu::vector_size (sizeof(scalar_t) * length)]] =
scalar_t;

    static_assert(std::is_same<int32x4_t, builtin_simd<scalar_t,
length>::type>::value, "");

    return 0;
}
```

Gcc allows this.

Thank you!

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to