lp_bld_const.h revision 1dd7bb17c7331f9ecd0bc830b61ada235a56fe6d
164611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca/**************************************************************************
264611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca *
364611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * Copyright 2009 VMware, Inc.
464611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * All Rights Reserved.
564611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca *
664611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * Permission is hereby granted, free of charge, to any person obtaining a
764611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * copy of this software and associated documentation files (the
864611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * "Software"), to deal in the Software without restriction, including
964611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * without limitation the rights to use, copy, modify, merge, publish,
1064611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * distribute, sub license, and/or sell copies of the Software, and to
1164611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * permit persons to whom the Software is furnished to do so, subject to
1264611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * the following conditions:
1364611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca *
1464611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * The above copyright notice and this permission notice (including the
1564611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * next paragraph) shall be included in all copies or substantial portions
1664611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * of the Software.
1764611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca *
1864611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1964611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
2064611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
2164611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
2264611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
2364611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
2464611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2564611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca *
2664611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca **************************************************************************/
2764611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
2864611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca/**
2964611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * @file
3064611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * Helper functions for constant building.
3164611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca *
3264611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca * @author Jose Fonseca <jfonseca@vmware.com>
3364611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca */
3464611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
3564611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
3664611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca#ifndef LP_BLD_CONST_H
3764611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca#define LP_BLD_CONST_H
3864611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
3964611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
4064611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca#include <llvm-c/Core.h>
4164611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
4264611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
4364611e086dbefa2003773ab541c0381b5713e18dJosé Fonsecaunion lp_type type;
4464611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
4564611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
4664611e086dbefa2003773ab541c0381b5713e18dJosé FonsecaLLVMValueRef
4764611e086dbefa2003773ab541c0381b5713e18dJosé Fonsecalp_build_undef(union lp_type type);
4864611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
4964611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
5064611e086dbefa2003773ab541c0381b5713e18dJosé FonsecaLLVMValueRef
5164611e086dbefa2003773ab541c0381b5713e18dJosé Fonsecalp_build_zero(union lp_type type);
5264611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
5364611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
5464611e086dbefa2003773ab541c0381b5713e18dJosé FonsecaLLVMValueRef
5564611e086dbefa2003773ab541c0381b5713e18dJosé Fonsecalp_build_one(union lp_type type);
5664611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
5764611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
5864611e086dbefa2003773ab541c0381b5713e18dJosé FonsecaLLVMValueRef
5964611e086dbefa2003773ab541c0381b5713e18dJosé Fonsecalp_build_const_aos(union lp_type type,
6064611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca                   double r, double g, double b, double a,
6164611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca                   const unsigned char *swizzle);
6264611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
6364611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca
641dd7bb17c7331f9ecd0bc830b61ada235a56fe6dJosé FonsecaLLVMValueRef
651dd7bb17c7331f9ecd0bc830b61ada235a56fe6dJosé Fonsecalp_build_const_shift(union lp_type type,
661dd7bb17c7331f9ecd0bc830b61ada235a56fe6dJosé Fonseca                     int c);
671dd7bb17c7331f9ecd0bc830b61ada235a56fe6dJosé Fonseca
681dd7bb17c7331f9ecd0bc830b61ada235a56fe6dJosé Fonseca
691dd7bb17c7331f9ecd0bc830b61ada235a56fe6dJosé FonsecaLLVMValueRef
701dd7bb17c7331f9ecd0bc830b61ada235a56fe6dJosé Fonsecalp_build_const_mask_aos(union lp_type type,
711dd7bb17c7331f9ecd0bc830b61ada235a56fe6dJosé Fonseca                        boolean cond[4]);
721dd7bb17c7331f9ecd0bc830b61ada235a56fe6dJosé Fonseca
731dd7bb17c7331f9ecd0bc830b61ada235a56fe6dJosé Fonseca
7464611e086dbefa2003773ab541c0381b5713e18dJosé Fonseca#endif /* !LP_BLD_CONST_H */
75