@@ -23,13 +23,13 @@ define i32 @fshl_i32_constant(i32 %x, i32 %y) {
23
23
24
24
define i42 @fshr_i42_constant (i42 %x , i42 %y ) {
25
25
; CHECK-LABEL: @fshr_i42_constant(
26
- ; CHECK-NEXT: [[SHL :%.*]] = shl i42 [[X:%.*]], 31
27
- ; CHECK-NEXT: [[SHR :%.*]] = lshr i42 [[Y:%.*]], 11
26
+ ; CHECK-NEXT: [[SHR :%.*]] = lshr i42 [[X:%.*]], 31
27
+ ; CHECK-NEXT: [[SHL :%.*]] = shl i42 [[Y:%.*]], 11
28
28
; CHECK-NEXT: [[R:%.*]] = or i42 [[SHR]], [[SHL]]
29
29
; CHECK-NEXT: ret i42 [[R]]
30
30
;
31
- %shl = shl i42 %x , 31
32
- %shr = lshr i42 %y , 11
31
+ %shr = lshr i42 %x , 31
32
+ %shl = shl i42 %y , 11
33
33
%r = or i42 %shr , %shl
34
34
ret i42 %r
35
35
}
@@ -79,39 +79,39 @@ define <2 x i16> @fshl_v2i16_constant_splat_undef1(<2 x i16> %x, <2 x i16> %y) {
79
79
80
80
define <2 x i17 > @fshr_v2i17_constant_splat (<2 x i17 > %x , <2 x i17 > %y ) {
81
81
; CHECK-LABEL: @fshr_v2i17_constant_splat(
82
- ; CHECK-NEXT: [[SHL :%.*]] = shl <2 x i17> [[X:%.*]], <i17 12, i17 12>
83
- ; CHECK-NEXT: [[SHR :%.*]] = lshr <2 x i17> [[Y:%.*]], <i17 5, i17 5>
82
+ ; CHECK-NEXT: [[SHR :%.*]] = lshr <2 x i17> [[X:%.*]], <i17 12, i17 12>
83
+ ; CHECK-NEXT: [[SHL :%.*]] = shl <2 x i17> [[Y:%.*]], <i17 5, i17 5>
84
84
; CHECK-NEXT: [[R:%.*]] = or <2 x i17> [[SHR]], [[SHL]]
85
85
; CHECK-NEXT: ret <2 x i17> [[R]]
86
86
;
87
- %shl = shl <2 x i17 > %x , <i17 12 , i17 12 >
88
- %shr = lshr <2 x i17 > %y , <i17 5 , i17 5 >
87
+ %shr = lshr <2 x i17 > %x , <i17 12 , i17 12 >
88
+ %shl = shl <2 x i17 > %y , <i17 5 , i17 5 >
89
89
%r = or <2 x i17 > %shr , %shl
90
90
ret <2 x i17 > %r
91
91
}
92
92
93
93
define <2 x i17 > @fshr_v2i17_constant_splat_undef0 (<2 x i17 > %x , <2 x i17 > %y ) {
94
94
; CHECK-LABEL: @fshr_v2i17_constant_splat_undef0(
95
- ; CHECK-NEXT: [[SHL :%.*]] = shl <2 x i17> [[X:%.*]], <i17 12, i17 undef>
96
- ; CHECK-NEXT: [[SHR :%.*]] = lshr <2 x i17> [[Y:%.*]], <i17 undef, i17 5>
95
+ ; CHECK-NEXT: [[SHR :%.*]] = lshr <2 x i17> [[X:%.*]], <i17 12, i17 undef>
96
+ ; CHECK-NEXT: [[SHL :%.*]] = shl <2 x i17> [[Y:%.*]], <i17 undef, i17 5>
97
97
; CHECK-NEXT: [[R:%.*]] = or <2 x i17> [[SHR]], [[SHL]]
98
98
; CHECK-NEXT: ret <2 x i17> [[R]]
99
99
;
100
- %shl = shl <2 x i17 > %x , <i17 12 , i17 undef >
101
- %shr = lshr <2 x i17 > %y , <i17 undef , i17 5 >
100
+ %shr = lshr <2 x i17 > %x , <i17 12 , i17 undef >
101
+ %shl = shl <2 x i17 > %y , <i17 undef , i17 5 >
102
102
%r = or <2 x i17 > %shr , %shl
103
103
ret <2 x i17 > %r
104
104
}
105
105
106
106
define <2 x i17 > @fshr_v2i17_constant_splat_undef1 (<2 x i17 > %x , <2 x i17 > %y ) {
107
107
; CHECK-LABEL: @fshr_v2i17_constant_splat_undef1(
108
- ; CHECK-NEXT: [[SHL :%.*]] = shl <2 x i17> [[X:%.*]], <i17 12, i17 undef>
109
- ; CHECK-NEXT: [[SHR :%.*]] = lshr <2 x i17> [[Y:%.*]], <i17 5, i17 undef>
108
+ ; CHECK-NEXT: [[SHR :%.*]] = lshr <2 x i17> [[X:%.*]], <i17 12, i17 undef>
109
+ ; CHECK-NEXT: [[SHL :%.*]] = shl <2 x i17> [[Y:%.*]], <i17 5, i17 undef>
110
110
; CHECK-NEXT: [[R:%.*]] = or <2 x i17> [[SHR]], [[SHL]]
111
111
; CHECK-NEXT: ret <2 x i17> [[R]]
112
112
;
113
- %shl = shl <2 x i17 > %x , <i17 12 , i17 undef >
114
- %shr = lshr <2 x i17 > %y , <i17 5 , i17 undef >
113
+ %shr = lshr <2 x i17 > %x , <i17 12 , i17 undef >
114
+ %shl = shl <2 x i17 > %y , <i17 5 , i17 undef >
115
115
%r = or <2 x i17 > %shr , %shl
116
116
ret <2 x i17 > %r
117
117
}
@@ -120,39 +120,39 @@ define <2 x i17> @fshr_v2i17_constant_splat_undef1(<2 x i17> %x, <2 x i17> %y) {
120
120
121
121
define <2 x i32 > @fshr_v2i32_constant_nonsplat (<2 x i32 > %x , <2 x i32 > %y ) {
122
122
; CHECK-LABEL: @fshr_v2i32_constant_nonsplat(
123
- ; CHECK-NEXT: [[SHL :%.*]] = shl <2 x i32> [[X:%.*]], <i32 17, i32 19>
124
- ; CHECK-NEXT: [[SHR :%.*]] = lshr <2 x i32> [[Y:%.*]], <i32 15, i32 13>
123
+ ; CHECK-NEXT: [[SHR :%.*]] = lshr <2 x i32> [[X:%.*]], <i32 17, i32 19>
124
+ ; CHECK-NEXT: [[SHL :%.*]] = shl <2 x i32> [[Y:%.*]], <i32 15, i32 13>
125
125
; CHECK-NEXT: [[R:%.*]] = or <2 x i32> [[SHL]], [[SHR]]
126
126
; CHECK-NEXT: ret <2 x i32> [[R]]
127
127
;
128
- %shl = shl <2 x i32 > %x , <i32 17 , i32 19 >
129
- %shr = lshr <2 x i32 > %y , <i32 15 , i32 13 >
128
+ %shr = lshr <2 x i32 > %x , <i32 17 , i32 19 >
129
+ %shl = shl <2 x i32 > %y , <i32 15 , i32 13 >
130
130
%r = or <2 x i32 > %shl , %shr
131
131
ret <2 x i32 > %r
132
132
}
133
133
134
134
define <2 x i32 > @fshr_v2i32_constant_nonsplat_undef0 (<2 x i32 > %x , <2 x i32 > %y ) {
135
135
; CHECK-LABEL: @fshr_v2i32_constant_nonsplat_undef0(
136
- ; CHECK-NEXT: [[SHL :%.*]] = shl <2 x i32> [[X:%.*]], <i32 undef, i32 19>
137
- ; CHECK-NEXT: [[SHR :%.*]] = lshr <2 x i32> [[Y:%.*]], <i32 15, i32 13>
136
+ ; CHECK-NEXT: [[SHR :%.*]] = lshr <2 x i32> [[X:%.*]], <i32 undef, i32 19>
137
+ ; CHECK-NEXT: [[SHL :%.*]] = shl <2 x i32> [[Y:%.*]], <i32 15, i32 13>
138
138
; CHECK-NEXT: [[R:%.*]] = or <2 x i32> [[SHL]], [[SHR]]
139
139
; CHECK-NEXT: ret <2 x i32> [[R]]
140
140
;
141
- %shl = shl <2 x i32 > %x , <i32 undef , i32 19 >
142
- %shr = lshr <2 x i32 > %y , <i32 15 , i32 13 >
141
+ %shr = lshr <2 x i32 > %x , <i32 undef , i32 19 >
142
+ %shl = shl <2 x i32 > %y , <i32 15 , i32 13 >
143
143
%r = or <2 x i32 > %shl , %shr
144
144
ret <2 x i32 > %r
145
145
}
146
146
147
147
define <2 x i32 > @fshr_v2i32_constant_nonsplat_undef1 (<2 x i32 > %x , <2 x i32 > %y ) {
148
148
; CHECK-LABEL: @fshr_v2i32_constant_nonsplat_undef1(
149
- ; CHECK-NEXT: [[SHL :%.*]] = shl <2 x i32> [[X:%.*]], <i32 17, i32 19>
150
- ; CHECK-NEXT: [[SHR :%.*]] = lshr <2 x i32> [[Y:%.*]], <i32 15, i32 undef>
149
+ ; CHECK-NEXT: [[SHR :%.*]] = lshr <2 x i32> [[X:%.*]], <i32 17, i32 19>
150
+ ; CHECK-NEXT: [[SHL :%.*]] = shl <2 x i32> [[Y:%.*]], <i32 15, i32 undef>
151
151
; CHECK-NEXT: [[R:%.*]] = or <2 x i32> [[SHL]], [[SHR]]
152
152
; CHECK-NEXT: ret <2 x i32> [[R]]
153
153
;
154
- %shl = shl <2 x i32 > %x , <i32 17 , i32 19 >
155
- %shr = lshr <2 x i32 > %y , <i32 15 , i32 undef >
154
+ %shr = lshr <2 x i32 > %x , <i32 17 , i32 19 >
155
+ %shl = shl <2 x i32 > %y , <i32 15 , i32 undef >
156
156
%r = or <2 x i32 > %shl , %shr
157
157
ret <2 x i32 > %r
158
158
}
0 commit comments