mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-10 18:34:09 +00:00
29b15a3780
Use one intrinsic for all sorts of interpolation. Use two separate unexpanded instructions to represent INTERP_XY and _ZW - this will allow to eliminate one part if it's not used. Track liveness of special interpolation regs instead of reserving them - this will allow to reuse those regs, lowering reg pressure. Patch By: Vadim Girlin v2[Vincent Lejeune]: Rebased against current llvm master Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com> Reviewed-by: Tom Stellard <thomas.stellard@amd.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174394 91177308-0d34-0410-b5e6-96231b3b80d8
33 lines
1.2 KiB
TableGen
33 lines
1.2 KiB
TableGen
//===-- R600Intrinsics.td - R600 Instrinsic defs -------*- tablegen -*-----===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// R600 Intrinsic Definitions
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
let TargetPrefix = "R600", isTarget = 1 in {
|
|
def int_R600_load_input :
|
|
Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
|
|
def int_R600_interp_input :
|
|
Intrinsic<[llvm_float_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>;
|
|
def int_R600_store_swizzle :
|
|
Intrinsic<[], [llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty], []>;
|
|
|
|
def int_R600_store_stream_output :
|
|
Intrinsic<[], [llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>;
|
|
def int_R600_store_pixel_color :
|
|
Intrinsic<[], [llvm_float_ty, llvm_i32_ty], []>;
|
|
def int_R600_store_pixel_depth :
|
|
Intrinsic<[], [llvm_float_ty], []>;
|
|
def int_R600_store_pixel_stencil :
|
|
Intrinsic<[], [llvm_float_ty], []>;
|
|
def int_R600_store_dummy :
|
|
Intrinsic<[], [llvm_i32_ty], []>;
|
|
}
|