// hint: asc tests/compiler/std/simd --enable simd --validate @sealed class I8x16 { @inline static from(vec: v128): I8x16 { return changetype(vec); } // TODO: not possible due to arguments becoming locals, no longer being compile-time constants // @inline constructor( // a: i8, b: i8, c: i8, d: i8, e: i8, f: i8, g: i8, h: i8, i: i8, j: i8, k: i8, l: i8, m: i8, n: i8, o: i8, p: i8 // ) { // return changetype(i8x16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)); // } private constructor() { unreachable(); } @inline @operator("+") add(vec: I8x16): I8x16 { return changetype(v128.add(changetype(this), changetype(vec))); } } function test_I8x16(): void { var a = I8x16.from(i8x16(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)); var c = a + a; } if (ASC_FEATURE_SIMD) { test_I8x16(); }