File tree Expand file tree Collapse file tree 3 files changed +9
-9
lines changed Expand file tree Collapse file tree 3 files changed +9
-9
lines changed Original file line number Diff line number Diff line change @@ -156,7 +156,7 @@ extern __inline unsigned char
156156  return  (unsigned char  )__builtin_loongarch_iocsrrd_b ((unsigned int  )_1 );
157157}
158158
159- extern  __inline unsigned char  
159+ extern  __inline unsigned short  
160160    __attribute__((__gnu_inline__ , __always_inline__ , __artificial__ ))
161161    __iocsrrd_h (unsigned int   _1 ) {
162162  return  (unsigned short )__builtin_loongarch_iocsrrd_h ((unsigned int  )_1 );
Original file line number Diff line number Diff line change @@ -215,11 +215,11 @@ void cacop_w(unsigned long int a) {
215215// LA32-LABEL: @iocsrrd_h_result( 
216216// LA32-NEXT:  entry: 
217217// LA32-NEXT:    [[TMP0:%.*]] = tail call i32 @llvm.loongarch.iocsrrd.h(i32 [[A:%.*]]) 
218+ // LA32-NEXT:    [[CONV_I:%.*]] = trunc i32 [[TMP0]] to i16 
218219// LA32-NEXT:    [[TMP1:%.*]] = tail call i32 @llvm.loongarch.iocsrrd.h(i32 [[A]]) 
219- // LA32-NEXT:    [[CONV2:%.*]] = and i32 [[TMP0]], 255 
220- // LA32-NEXT:    [[ADD:%.*]] = add i32 [[TMP1]], [[CONV2]] 
221- // LA32-NEXT:    [[CONV4:%.*]] = trunc i32 [[ADD]] to i16 
222- // LA32-NEXT:    ret i16 [[CONV4]] 
220+ // LA32-NEXT:    [[TMP2:%.*]] = trunc i32 [[TMP1]] to i16 
221+ // LA32-NEXT:    [[CONV3:%.*]] = add i16 [[TMP2]], [[CONV_I]] 
222+ // LA32-NEXT:    ret i16 [[CONV3]] 
223223// 
224224unsigned short  iocsrrd_h_result (unsigned int   a ) {
225225  unsigned short  b  =  __iocsrrd_h (a );
Original file line number Diff line number Diff line change @@ -431,11 +431,11 @@ void loongarch_movgr2fcsr(int a) {
431431// CHECK-LABEL: @iocsrrd_h_result( 
432432// CHECK-NEXT:  entry: 
433433// CHECK-NEXT:    [[TMP0:%.*]] = tail call i32 @llvm.loongarch.iocsrrd.h(i32 [[A:%.*]]) 
434+ // CHECK-NEXT:    [[CONV_I:%.*]] = trunc i32 [[TMP0]] to i16 
434435// CHECK-NEXT:    [[TMP1:%.*]] = tail call i32 @llvm.loongarch.iocsrrd.h(i32 [[A]]) 
435- // CHECK-NEXT:    [[CONV2:%.*]] = and i32 [[TMP0]], 255 
436- // CHECK-NEXT:    [[ADD:%.*]] = add i32 [[TMP1]], [[CONV2]] 
437- // CHECK-NEXT:    [[CONV4:%.*]] = trunc i32 [[ADD]] to i16 
438- // CHECK-NEXT:    ret i16 [[CONV4]] 
436+ // CHECK-NEXT:    [[TMP2:%.*]] = trunc i32 [[TMP1]] to i16 
437+ // CHECK-NEXT:    [[CONV3:%.*]] = add i16 [[TMP2]], [[CONV_I]] 
438+ // CHECK-NEXT:    ret i16 [[CONV3]] 
439439// 
440440unsigned short  iocsrrd_h_result (unsigned int   a ) {
441441  unsigned short  b  =  __iocsrrd_h (a );
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments