23 |
| Op.Mul ty => (ty, [ty, ty]) |
| Op.Mul ty => (ty, [ty, ty]) |
24 |
| Op.Div ty => (ty, [ty, ty]) |
| Op.Div ty => (ty, [ty, ty]) |
25 |
| Op.Neg ty => (ty, [ty]) |
| Op.Neg ty => (ty, [ty]) |
26 |
|
| Op.Abs ty => (ty, [ty]) |
27 |
| Op.LT ty => (Ty.BoolTy, [ty, ty]) |
| Op.LT ty => (Ty.BoolTy, [ty, ty]) |
28 |
| Op.LTE ty => (Ty.BoolTy, [ty, ty]) |
| Op.LTE ty => (Ty.BoolTy, [ty, ty]) |
29 |
| Op.EQ ty => (Ty.BoolTy, [ty, ty]) |
| Op.EQ ty => (Ty.BoolTy, [ty, ty]) |
38 |
| Op.Select(ty as Ty.IVecTy d, _) => (Ty.intTy, [ty]) |
| Op.Select(ty as Ty.IVecTy d, _) => (Ty.intTy, [ty]) |
39 |
| Op.Select(ty as Ty.VecTy d, _) => (Ty.realTy, [ty]) |
| Op.Select(ty as Ty.VecTy d, _) => (Ty.realTy, [ty]) |
40 |
| Op.Norm d => (Ty.realTy, [Ty.VecTy d]) |
| Op.Norm d => (Ty.realTy, [Ty.VecTy d]) |
41 |
|
| Op.Normalize d => (Ty.VecTy d, [Ty.VecTy d]) |
42 |
| Op.Scale d => (Ty.VecTy d, [Ty.realTy, Ty.VecTy d]) |
| Op.Scale d => (Ty.VecTy d, [Ty.realTy, Ty.VecTy d]) |
43 |
| Op.InvScale d => (Ty.VecTy d, [Ty.VecTy d, Ty.realTy]) |
| Op.InvScale d => (Ty.VecTy d, [Ty.VecTy d, Ty.realTy]) |
44 |
| Op.CL => raise Fail "Op.CL unimplemented" |
| Op.CL => raise Fail "Op.CL unimplemented" |