@@ -49,39 +49,33 @@ define zeroext i32 @func32z(i32 zeroext %p) {
49
49
define signext i16 @func16s (i16 signext %p ) {
50
50
; CHECK-LABEL: func16s:
51
51
; CHECK: # %bb.0:
52
- ; CHECK-NEXT: brv %s0, %s0
53
- ; CHECK-NEXT: sra.l %s0, %s0, 48
54
- ; CHECK-NEXT: b.l.t ( , %s10)
52
+ ; CHECK-NEXT: bswp %s0, %s0, 1
53
+ ; CHECK-NEXT: and %s0, %s0, (32)0
54
+ ; CHECK-NEXT: srl %s1 , %s0, 12
55
55
%r = tail call i16 @llvm.bitreverse.i16 (i16 %p )
56
56
ret i16 %r
57
57
}
58
58
59
59
define zeroext i16 @func16z (i16 zeroext %p ) {
60
60
; CHECK-LABEL: func16z:
61
61
; CHECK: # %bb.0:
62
- ; CHECK-NEXT: brv %s0, %s0
63
- ; CHECK-NEXT: srl %s0, %s0, 48
64
- ; CHECK-NEXT: b.l.t ( , %s10)
62
+ ; CHECK-NEXT: bswp %s0, %s0, 1
63
+ ; CHECK-NEXT: and %s0, %s0, (32)0
64
+ ; CHECK-NEXT: srl %s1 , %s0, 12
65
65
%r = tail call i16 @llvm.bitreverse.i16 (i16 %p )
66
66
ret i16 %r
67
67
}
68
68
69
69
define signext i8 @func8s (i8 signext %p ) {
70
70
; CHECK-LABEL: func8s:
71
71
; CHECK: # %bb.0:
72
- ; CHECK-NEXT: brv %s0, %s0
73
- ; CHECK-NEXT: sra.l %s0, %s0, 56
74
- ; CHECK-NEXT: b.l.t (, %s10)
75
72
%r = tail call i8 @llvm.bitreverse.i8 (i8 %p )
76
73
ret i8 %r
77
74
}
78
75
79
76
define zeroext i8 @func8z (i8 zeroext %p ) {
80
77
; CHECK-LABEL: func8z:
81
78
; CHECK: # %bb.0:
82
- ; CHECK-NEXT: brv %s0, %s0
83
- ; CHECK-NEXT: srl %s0, %s0, 56
84
- ; CHECK-NEXT: b.l.t (, %s10)
85
79
%r = tail call i8 @llvm.bitreverse.i8 (i8 %p )
86
80
ret i8 %r
87
81
}
0 commit comments