lp_bld_pack.h revision b919bb7f6119d59751fe846cabe5b0d587f46edc
1421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca/************************************************************************** 2421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * 3421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * Copyright 2009 VMware, Inc. 4421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * All Rights Reserved. 5421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * 6421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * Permission is hereby granted, free of charge, to any person obtaining a 7421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * copy of this software and associated documentation files (the 8421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * "Software"), to deal in the Software without restriction, including 9421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * without limitation the rights to use, copy, modify, merge, publish, 10421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * distribute, sub license, and/or sell copies of the Software, and to 11421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * permit persons to whom the Software is furnished to do so, subject to 12421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * the following conditions: 13421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * 14421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * The above copyright notice and this permission notice (including the 15421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * next paragraph) shall be included in all copies or substantial portions 16421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * of the Software. 17421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * 18421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 21421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR 22421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * 26421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca **************************************************************************/ 27421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 28421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca/** 29421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * @file 30421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * Helper functions for packing/unpacking conversions. 31421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * 32421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca * @author Jose Fonseca <jfonseca@vmware.com> 33421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca */ 34421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 35421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 36421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca#ifndef LP_BLD_PACK_H 37421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca#define LP_BLD_PACK_H 38421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 39421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 400d71ba46e613230c84165106c1fcc9027dec4cd3Brian Paul#include "gallivm/lp_bld.h" 41421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 42421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 43421507de06bd42a322c5864d887e67e385eb458cJosé Fonsecastruct lp_type; 44421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 45421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 46421507de06bd42a322c5864d887e67e385eb458cJosé FonsecaLLVMValueRef 47421507de06bd42a322c5864d887e67e385eb458cJosé Fonsecalp_build_interleave2(LLVMBuilderRef builder, 48421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca struct lp_type type, 49421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca LLVMValueRef a, 50421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca LLVMValueRef b, 51421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca unsigned lo_hi); 52421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 53421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 54421507de06bd42a322c5864d887e67e385eb458cJosé Fonsecavoid 55421507de06bd42a322c5864d887e67e385eb458cJosé Fonsecalp_build_unpack2(LLVMBuilderRef builder, 56421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca struct lp_type src_type, 57421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca struct lp_type dst_type, 58421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca LLVMValueRef src, 59421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca LLVMValueRef *dst_lo, 60421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca LLVMValueRef *dst_hi); 61421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 62421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 63421507de06bd42a322c5864d887e67e385eb458cJosé Fonsecavoid 64421507de06bd42a322c5864d887e67e385eb458cJosé Fonsecalp_build_unpack(LLVMBuilderRef builder, 65421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca struct lp_type src_type, 66421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca struct lp_type dst_type, 67421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca LLVMValueRef src, 68421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca LLVMValueRef *dst, unsigned num_dsts); 69421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 70421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 71421507de06bd42a322c5864d887e67e385eb458cJosé FonsecaLLVMValueRef 72421507de06bd42a322c5864d887e67e385eb458cJosé Fonsecalp_build_packs2(LLVMBuilderRef builder, 73421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca struct lp_type src_type, 74421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca struct lp_type dst_type, 75421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca LLVMValueRef lo, 76421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca LLVMValueRef hi); 77421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 78421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 79421507de06bd42a322c5864d887e67e385eb458cJosé FonsecaLLVMValueRef 80421507de06bd42a322c5864d887e67e385eb458cJosé Fonsecalp_build_pack2(LLVMBuilderRef builder, 81421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca struct lp_type src_type, 82421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca struct lp_type dst_type, 83421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca LLVMValueRef lo, 84421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca LLVMValueRef hi); 85421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 86421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 87421507de06bd42a322c5864d887e67e385eb458cJosé FonsecaLLVMValueRef 88421507de06bd42a322c5864d887e67e385eb458cJosé Fonsecalp_build_pack(LLVMBuilderRef builder, 89421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca struct lp_type src_type, 90421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca struct lp_type dst_type, 91421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca boolean clamped, 92421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca const LLVMValueRef *src, unsigned num_srcs); 93421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 94421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca 95b919bb7f6119d59751fe846cabe5b0d587f46edcJosé Fonsecavoid 96b919bb7f6119d59751fe846cabe5b0d587f46edcJosé Fonsecalp_build_resize(LLVMBuilderRef builder, 97b919bb7f6119d59751fe846cabe5b0d587f46edcJosé Fonseca struct lp_type src_type, 98b919bb7f6119d59751fe846cabe5b0d587f46edcJosé Fonseca struct lp_type dst_type, 99b919bb7f6119d59751fe846cabe5b0d587f46edcJosé Fonseca const LLVMValueRef *src, unsigned num_srcs, 100b919bb7f6119d59751fe846cabe5b0d587f46edcJosé Fonseca LLVMValueRef *dst, unsigned num_dsts); 101b919bb7f6119d59751fe846cabe5b0d587f46edcJosé Fonseca 102b919bb7f6119d59751fe846cabe5b0d587f46edcJosé Fonseca 103421507de06bd42a322c5864d887e67e385eb458cJosé Fonseca#endif /* !LP_BLD_PACK_H */ 104