File tree Expand file tree Collapse file tree 1 file changed +8
-0
lines changed 
lib/Conversion/TPtrToLLVM Expand file tree Collapse file tree 1 file changed +8
-0
lines changed Original file line number Diff line number Diff line change @@ -70,6 +70,11 @@ struct PtrAddConverter : OpConversionPattern<tptr::PtrAddOp> {
7070              mulOp.getRhs ().getDefiningOp <tptr::TypeOffsetOp>()) {
7171        elemTy = typeOffsetOp.getBaseType ();
7272      }
73+     } else  if  (auto  mulOp = origOffset.getDefiningOp <arith::MulIOp>()) {
74+       if  (auto  typeOffsetOp =
75+               mulOp.getRhs ().getDefiningOp <tptr::TypeOffsetOp>()) {
76+         elemTy = typeOffsetOp.getBaseType ();
77+       }
7378    }
7479
7580    if  (!elemTy) {
@@ -84,6 +89,9 @@ struct PtrAddConverter : OpConversionPattern<tptr::PtrAddOp> {
8489    Value elementIndex;
8590    if  (auto  mulOp = adaptor.getOffset ().getDefiningOp <LLVM::MulOp>()) {
8691      elementIndex = mulOp.getLhs ();
92+     } else  if  (auto  mulOp =
93+                    adaptor.getOffset ().getDefiningOp <arith::MulIOp>()) {
94+       elementIndex = mulOp.getLhs ();
8795    } else  {
8896      LDBG (" Warning: ptradd offset is not MulOp pattern, using raw offset"  );
8997      elementIndex = adaptor.getOffset ();
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments