brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 649bc78 Raw
40 lines · plain
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include <clc/clc_convert.h>10#include <clc/internal/clc.h>11 12#define __CLC_UPSAMPLE_IMPL(BGENTYPE, GENTYPE, UGENTYPE, GENSIZE)              \13  _CLC_OVERLOAD _CLC_DEF BGENTYPE __clc_upsample(GENTYPE hi, UGENTYPE lo) {    \14    BGENTYPE large_hi = __clc_convert_##BGENTYPE(hi);                          \15    BGENTYPE large_lo = __clc_convert_##BGENTYPE(lo);                          \16    return (large_hi << (BGENTYPE)GENSIZE) | large_lo;                         \17  }18 19#define __CLC_UPSAMPLE_IMPL_ALL_TYS(BGENTYPE, GENTYPE, UGENTYPE, GENSIZE)      \20  __CLC_UPSAMPLE_IMPL(BGENTYPE, GENTYPE, UGENTYPE, GENSIZE)                    \21  __CLC_UPSAMPLE_IMPL(BGENTYPE##2, GENTYPE##2, UGENTYPE##2, GENSIZE)           \22  __CLC_UPSAMPLE_IMPL(BGENTYPE##3, GENTYPE##3, UGENTYPE##3, GENSIZE)           \23  __CLC_UPSAMPLE_IMPL(BGENTYPE##4, GENTYPE##4, UGENTYPE##4, GENSIZE)           \24  __CLC_UPSAMPLE_IMPL(BGENTYPE##8, GENTYPE##8, UGENTYPE##8, GENSIZE)           \25  __CLC_UPSAMPLE_IMPL(BGENTYPE##16, GENTYPE##16, UGENTYPE##16, GENSIZE)26 27#define __CLC_UPSAMPLE_TYPES()                                                 \28  __CLC_UPSAMPLE_IMPL_ALL_TYS(short, char, uchar, 8)                           \29  __CLC_UPSAMPLE_IMPL_ALL_TYS(ushort, uchar, uchar, 8)                         \30  __CLC_UPSAMPLE_IMPL_ALL_TYS(int, short, ushort, 16)                          \31  __CLC_UPSAMPLE_IMPL_ALL_TYS(uint, ushort, ushort, 16)                        \32  __CLC_UPSAMPLE_IMPL_ALL_TYS(long, int, uint, 32)                             \33  __CLC_UPSAMPLE_IMPL_ALL_TYS(ulong, uint, uint, 32)34 35__CLC_UPSAMPLE_TYPES()36 37#undef __CLC_UPSAMPLE_TYPES38#undef __CLC_UPSAMPLE_IMPL_ALL_TYS39#undef __CLC_UPSAMPLE_IMPL40