diff options
| author | Dietrich Geisler <dag368@cornell.edu> | 2020-06-02 12:12:35 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-02 09:12:35 -0700 |
| commit | 926a0c51071f6cf5718c77958cc801030ce9d404 (patch) | |
| tree | c02e84cd402afc6383db2e169c08d05c2a12fbc6 /tests/diagnostics | |
| parent | 8acb704ecabc10c31e664de3814c544572e3945f (diff) | |
Working matrix swizzle (#1354)
* Working matrix swizzle.
Supports one and zero indexing and multiple elements.
Performs semantic checking of the swizzle. Matrix swizzles are
transformed into a vector of indexing operations during lowering to the
IR.
This change does not handle matrix swizzle as lvalues.
* Renaming
* Added missing semicolon
* Initialize variable for gcc
* Added the expect file for diagnostics
* Matrix swizzle updated per PR feedback
* Stylistic fix
* Formatting fixes
* Fix compiling with AST change.
Change indentation.
Co-authored-by: jsmall-nvidia <jsmall@nvidia.com>
Diffstat (limited to 'tests/diagnostics')
| -rw-r--r-- | tests/diagnostics/matrix-swizzle.slang | 24 | ||||
| -rw-r--r-- | tests/diagnostics/matrix-swizzle.slang.expected | 18 |
2 files changed, 42 insertions, 0 deletions
diff --git a/tests/diagnostics/matrix-swizzle.slang b/tests/diagnostics/matrix-swizzle.slang new file mode 100644 index 000000000..d9331d89a --- /dev/null +++ b/tests/diagnostics/matrix-swizzle.slang @@ -0,0 +1,24 @@ +//DIAGNOSTIC_TEST:SIMPLE: + +int doSomething(int a) +{ + int2x3 m1 = int2x3(0, 1, 2, 3, 4, 5); + int3x2 m2 = int3x2(0, 1, 2, 3, 4, 5); + + int c = m1._14; // Out of bounds + c = m1._32; + c = m2._m22; + c = m2._; // unfinished + c = m2._m; + c = m2._1; + c = m2._m1; + c = m2._m12_; + int2 c2 = m1._m11_11; // Mixing of 1 and 0-indexing + c = m1._11_11_11_11_11; // More than 4 elements + c = m1.x; // Invalid character + c = m1._x; + c = m1.x123; + + return m1._11; +} + diff --git a/tests/diagnostics/matrix-swizzle.slang.expected b/tests/diagnostics/matrix-swizzle.slang.expected new file mode 100644 index 000000000..8d349a2ed --- /dev/null +++ b/tests/diagnostics/matrix-swizzle.slang.expected @@ -0,0 +1,18 @@ +result code = -1 +standard error = { +tests/diagnostics/matrix-swizzle.slang(8): error 30052: invalid swizzle pattern '_14' on type 'int' +tests/diagnostics/matrix-swizzle.slang(9): error 30052: invalid swizzle pattern '_32' on type 'int' +tests/diagnostics/matrix-swizzle.slang(10): error 30052: invalid swizzle pattern '_m22' on type 'int' +tests/diagnostics/matrix-swizzle.slang(11): error 30052: invalid swizzle pattern '_' on type 'int' +tests/diagnostics/matrix-swizzle.slang(12): error 30052: invalid swizzle pattern '_m' on type 'int' +tests/diagnostics/matrix-swizzle.slang(13): error 30052: invalid swizzle pattern '_1' on type 'int' +tests/diagnostics/matrix-swizzle.slang(14): error 30052: invalid swizzle pattern '_m1' on type 'int' +tests/diagnostics/matrix-swizzle.slang(15): error 30052: invalid swizzle pattern '_m12_' on type 'int' +tests/diagnostics/matrix-swizzle.slang(16): error 30052: invalid swizzle pattern '_m11_11' on type 'int' +tests/diagnostics/matrix-swizzle.slang(17): error 30052: invalid swizzle pattern '_11_11_11_11_11' on type 'int' +tests/diagnostics/matrix-swizzle.slang(18): error 30052: invalid swizzle pattern 'x' on type 'int' +tests/diagnostics/matrix-swizzle.slang(19): error 30052: invalid swizzle pattern '_x' on type 'int' +tests/diagnostics/matrix-swizzle.slang(20): error 30052: invalid swizzle pattern 'x123' on type 'int' +} +standard output = { +} |
