@@ -59,19 +59,31 @@ pub(crate) fn codegen_aarch64_llvm_intrinsic_call<'tcx>(
59
59
_ if intrinsic. starts_with ( "llvm.aarch64.neon.smax.v" ) => {
60
60
intrinsic_args ! ( fx, args => ( x, y) ; intrinsic) ;
61
61
62
- simd_pair_for_each_lane ( fx, x, y, ret, & |fx, _lane_ty, _res_lane_ty, x_lane, y_lane| {
63
- let gt = fx. bcx . ins ( ) . icmp ( IntCC :: SignedGreaterThan , x_lane, y_lane) ;
64
- fx. bcx . ins ( ) . select ( gt, x_lane, y_lane)
65
- } ) ;
62
+ simd_pair_for_each_lane (
63
+ fx,
64
+ x,
65
+ y,
66
+ ret,
67
+ & |fx, _lane_ty, _res_lane_ty, x_lane, y_lane| {
68
+ let gt = fx. bcx . ins ( ) . icmp ( IntCC :: SignedGreaterThan , x_lane, y_lane) ;
69
+ fx. bcx . ins ( ) . select ( gt, x_lane, y_lane)
70
+ } ,
71
+ ) ;
66
72
}
67
73
68
74
_ if intrinsic. starts_with ( "llvm.aarch64.neon.umax.v" ) => {
69
75
intrinsic_args ! ( fx, args => ( x, y) ; intrinsic) ;
70
76
71
- simd_pair_for_each_lane ( fx, x, y, ret, & |fx, _lane_ty, _res_lane_ty, x_lane, y_lane| {
72
- let gt = fx. bcx . ins ( ) . icmp ( IntCC :: UnsignedGreaterThan , x_lane, y_lane) ;
73
- fx. bcx . ins ( ) . select ( gt, x_lane, y_lane)
74
- } ) ;
77
+ simd_pair_for_each_lane (
78
+ fx,
79
+ x,
80
+ y,
81
+ ret,
82
+ & |fx, _lane_ty, _res_lane_ty, x_lane, y_lane| {
83
+ let gt = fx. bcx . ins ( ) . icmp ( IntCC :: UnsignedGreaterThan , x_lane, y_lane) ;
84
+ fx. bcx . ins ( ) . select ( gt, x_lane, y_lane)
85
+ } ,
86
+ ) ;
75
87
}
76
88
77
89
_ if intrinsic. starts_with ( "llvm.aarch64.neon.smaxv.i" ) => {
@@ -95,19 +107,31 @@ pub(crate) fn codegen_aarch64_llvm_intrinsic_call<'tcx>(
95
107
_ if intrinsic. starts_with ( "llvm.aarch64.neon.smin.v" ) => {
96
108
intrinsic_args ! ( fx, args => ( x, y) ; intrinsic) ;
97
109
98
- simd_pair_for_each_lane ( fx, x, y, ret, & |fx, _lane_ty, _res_lane_ty, x_lane, y_lane| {
99
- let gt = fx. bcx . ins ( ) . icmp ( IntCC :: SignedLessThan , x_lane, y_lane) ;
100
- fx. bcx . ins ( ) . select ( gt, x_lane, y_lane)
101
- } ) ;
110
+ simd_pair_for_each_lane (
111
+ fx,
112
+ x,
113
+ y,
114
+ ret,
115
+ & |fx, _lane_ty, _res_lane_ty, x_lane, y_lane| {
116
+ let gt = fx. bcx . ins ( ) . icmp ( IntCC :: SignedLessThan , x_lane, y_lane) ;
117
+ fx. bcx . ins ( ) . select ( gt, x_lane, y_lane)
118
+ } ,
119
+ ) ;
102
120
}
103
121
104
122
_ if intrinsic. starts_with ( "llvm.aarch64.neon.umin.v" ) => {
105
123
intrinsic_args ! ( fx, args => ( x, y) ; intrinsic) ;
106
124
107
- simd_pair_for_each_lane ( fx, x, y, ret, & |fx, _lane_ty, _res_lane_ty, x_lane, y_lane| {
108
- let gt = fx. bcx . ins ( ) . icmp ( IntCC :: UnsignedLessThan , x_lane, y_lane) ;
109
- fx. bcx . ins ( ) . select ( gt, x_lane, y_lane)
110
- } ) ;
125
+ simd_pair_for_each_lane (
126
+ fx,
127
+ x,
128
+ y,
129
+ ret,
130
+ & |fx, _lane_ty, _res_lane_ty, x_lane, y_lane| {
131
+ let gt = fx. bcx . ins ( ) . icmp ( IntCC :: UnsignedLessThan , x_lane, y_lane) ;
132
+ fx. bcx . ins ( ) . select ( gt, x_lane, y_lane)
133
+ } ,
134
+ ) ;
111
135
}
112
136
113
137
_ if intrinsic. starts_with ( "llvm.aarch64.neon.sminv.i" ) => {
@@ -178,7 +202,6 @@ pub(crate) fn codegen_aarch64_llvm_intrinsic_call<'tcx>(
178
202
});
179
203
}
180
204
*/
181
-
182
205
_ => {
183
206
fx. tcx . sess . warn ( & format ! (
184
207
"unsupported AArch64 llvm intrinsic {}; replacing with trap" ,
0 commit comments