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