mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	Use the correct value for InSignBit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48245 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
		@@ -892,7 +892,7 @@ bool TargetLowering::SimplifyDemandedBits(SDOperand Op,
 | 
				
			|||||||
    MVT::ValueType InVT = Op.getOperand(0).getValueType();
 | 
					    MVT::ValueType InVT = Op.getOperand(0).getValueType();
 | 
				
			||||||
    unsigned InBits = MVT::getSizeInBits(InVT);
 | 
					    unsigned InBits = MVT::getSizeInBits(InVT);
 | 
				
			||||||
    APInt InMask    = APInt::getLowBitsSet(BitWidth, InBits);
 | 
					    APInt InMask    = APInt::getLowBitsSet(BitWidth, InBits);
 | 
				
			||||||
    APInt InSignBit = APInt::getLowBitsSet(BitWidth, InBits);
 | 
					    APInt InSignBit = APInt::getBitsSet(BitWidth, InBits - 1, InBits);
 | 
				
			||||||
    APInt NewBits   = ~InMask & NewMask;
 | 
					    APInt NewBits   = ~InMask & NewMask;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    // If none of the top bits are demanded, convert this into an any_extend.
 | 
					    // If none of the top bits are demanded, convert this into an any_extend.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										23
									
								
								test/CodeGen/X86/sext-select.ll
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								test/CodeGen/X86/sext-select.ll
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					; RUN: llvm-as < %s | llc -march=x86 | grep movsw
 | 
				
			||||||
 | 
					; PR2139
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare void @abort()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define i32 @main() {
 | 
				
			||||||
 | 
					entry:
 | 
				
			||||||
 | 
						%tmp73 = tail call i1 @return_false()		; <i8> [#uses=1]
 | 
				
			||||||
 | 
						%g.0 = select i1 %tmp73, i16 0, i16 -480		; <i16> [#uses=2]
 | 
				
			||||||
 | 
						%tmp7778 = sext i16 %g.0 to i32		; <i32> [#uses=1]
 | 
				
			||||||
 | 
						%tmp80 = shl i32 %tmp7778, 3		; <i32> [#uses=2]
 | 
				
			||||||
 | 
						%tmp87 = icmp sgt i32 %tmp80, 32767		; <i1> [#uses=1]
 | 
				
			||||||
 | 
						br i1 %tmp87, label %bb90, label %bb91
 | 
				
			||||||
 | 
					bb90:		; preds = %bb84, %bb72
 | 
				
			||||||
 | 
						tail call void @abort()
 | 
				
			||||||
 | 
						unreachable
 | 
				
			||||||
 | 
					bb91:		; preds = %bb84
 | 
				
			||||||
 | 
						ret i32 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define i1 @return_false() {
 | 
				
			||||||
 | 
						ret i1 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user