mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	disambiguate some types, add a fixme about some
inconsistent intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97959 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
		@@ -205,6 +205,7 @@ def CellSDKnand:
 | 
			
		||||
// Shift/rotate intrinsics:
 | 
			
		||||
//===----------------------------------------------------------------------===//
 | 
			
		||||
 | 
			
		||||
/* FIXME: These have (currently unenforced) type conflicts. */
 | 
			
		||||
def CellSDKshli:
 | 
			
		||||
  Pat<(int_spu_si_shli (v4i32 VECREG:$rA), uimm7:$val),
 | 
			
		||||
      (SHLIv4i32 VECREG:$rA, uimm7:$val)>;
 | 
			
		||||
 
 | 
			
		||||
@@ -2370,7 +2370,7 @@ class ROTHInst<dag OOL, dag IOL, list<dag> pattern>:
 | 
			
		||||
class ROTHVecInst<ValueType vectype>:
 | 
			
		||||
    ROTHInst<(outs VECREG:$rT), (ins VECREG:$rA, VECREG:$rB),
 | 
			
		||||
             [(set (vectype VECREG:$rT),
 | 
			
		||||
                   (SPUvec_rotl VECREG:$rA, VECREG:$rB))]>;
 | 
			
		||||
                   (SPUvec_rotl VECREG:$rA, (v8i16 VECREG:$rB)))]>;
 | 
			
		||||
 | 
			
		||||
class ROTHRegInst<RegisterClass rclass>:
 | 
			
		||||
    ROTHInst<(outs rclass:$rT), (ins rclass:$rA, rclass:$rB),
 | 
			
		||||
 
 | 
			
		||||
@@ -45,9 +45,9 @@ def : Pat<(mul (v8i16 VECREG:$rA), (v8i16 VECREG:$rB)),
 | 
			
		||||
def MPYv4i32:
 | 
			
		||||
  Pat<(mul (v4i32 VECREG:$rA), (v4i32 VECREG:$rB)),
 | 
			
		||||
      (Av4i32
 | 
			
		||||
        (Av4i32 (MPYHv4i32 VECREG:$rA, VECREG:$rB),
 | 
			
		||||
                (MPYHv4i32 VECREG:$rB, VECREG:$rA)),
 | 
			
		||||
        (MPYUv4i32 VECREG:$rA, VECREG:$rB))>;
 | 
			
		||||
        (v4i32 (Av4i32 (v4i32 (MPYHv4i32 VECREG:$rA, VECREG:$rB)),
 | 
			
		||||
                       (v4i32 (MPYHv4i32 VECREG:$rB, VECREG:$rA)))),
 | 
			
		||||
        (v4i32 (MPYUv4i32 VECREG:$rA, VECREG:$rB)))>;
 | 
			
		||||
 | 
			
		||||
def MPYi32:
 | 
			
		||||
  Pat<(mul R32C:$rA, R32C:$rB),
 | 
			
		||||
 
 | 
			
		||||
@@ -26,7 +26,7 @@ def callseq_end   : SDNode<"ISD::CALLSEQ_END",   SDT_SPUCallSeq,
 | 
			
		||||
// Operand constraints:
 | 
			
		||||
//===----------------------------------------------------------------------===//
 | 
			
		||||
 | 
			
		||||
def SDT_SPUCall   : SDTypeProfile<0, -1, [SDTCisInt<0>]>;
 | 
			
		||||
def SDT_SPUCall   : SDTypeProfile<0, -1, [SDTCisPtrTy<0>]>;
 | 
			
		||||
def SPUcall       : SDNode<"SPUISD::CALL", SDT_SPUCall,
 | 
			
		||||
                           [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user