File: outer-product.comp

package info (click to toggle)
retroarch 1.20.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 75,756 kB
  • sloc: ansic: 1,207,646; cpp: 104,166; objc: 8,567; asm: 6,624; python: 3,776; makefile: 2,838; sh: 2,786; xml: 1,408; perl: 393; javascript: 10
file content (38 lines) | stat: -rw-r--r-- 1,145 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <metal_stdlib>
#include <simd/simd.h>

using namespace metal;

struct SSBO
{
    float2x2 m22;
    float2x3 m23;
    float2x4 m24;
    float3x2 m32;
    float3x3 m33;
    float3x4 m34;
    float4x2 m42;
    float4x3 m43;
    float4x4 m44;
};

struct ReadSSBO
{
    float2 v2;
    float3 v3;
    float4 v4;
};

kernel void main0(device SSBO& _21 [[buffer(0)]], const device ReadSSBO& _26 [[buffer(1)]])
{
    _21.m22 = float2x2(_26.v2 * _26.v2.x, _26.v2 * _26.v2.y);
    _21.m23 = float2x3(_26.v3 * _26.v2.x, _26.v3 * _26.v2.y);
    _21.m24 = float2x4(_26.v4 * _26.v2.x, _26.v4 * _26.v2.y);
    _21.m32 = float3x2(_26.v2 * _26.v3.x, _26.v2 * _26.v3.y, _26.v2 * _26.v3.z);
    _21.m33 = float3x3(_26.v3 * _26.v3.x, _26.v3 * _26.v3.y, _26.v3 * _26.v3.z);
    _21.m34 = float3x4(_26.v4 * _26.v3.x, _26.v4 * _26.v3.y, _26.v4 * _26.v3.z);
    _21.m42 = float4x2(_26.v2 * _26.v4.x, _26.v2 * _26.v4.y, _26.v2 * _26.v4.z, _26.v2 * _26.v4.w);
    _21.m43 = float4x3(_26.v3 * _26.v4.x, _26.v3 * _26.v4.y, _26.v3 * _26.v4.z, _26.v3 * _26.v4.w);
    _21.m44 = float4x4(_26.v4 * _26.v4.x, _26.v4 * _26.v4.y, _26.v4 * _26.v4.z, _26.v4 * _26.v4.w);
}