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