• Home
  • Raw
  • Download

Lines Matching full:webassembly

1 …or-conversions=none -O3 -emit-llvm -o - %s | FileCheck %s -check-prefixes WEBASSEMBLY,WEBASSEMBLY32
2 …or-conversions=none -O3 -emit-llvm -o - %s | FileCheck %s -check-prefixes WEBASSEMBLY,WEBASSEMBLY64
43 // WEBASSEMBLY: call i8* @llvm.wasm.tls.base() in tls_base()
78 // WEBASSEMBLY: call i32 @llvm.wasm.trunc.signed.i32.f32(float %f) in trunc_s_i32_f32()
79 // WEBASSEMBLY-NEXT: ret in trunc_s_i32_f32()
84 // WEBASSEMBLY: call i32 @llvm.wasm.trunc.unsigned.i32.f32(float %f) in trunc_u_i32_f32()
85 // WEBASSEMBLY-NEXT: ret in trunc_u_i32_f32()
90 // WEBASSEMBLY: call i32 @llvm.wasm.trunc.signed.i32.f64(double %f) in trunc_s_i32_f64()
91 // WEBASSEMBLY-NEXT: ret in trunc_s_i32_f64()
96 // WEBASSEMBLY: call i32 @llvm.wasm.trunc.unsigned.i32.f64(double %f) in trunc_u_i32_f64()
97 // WEBASSEMBLY-NEXT: ret in trunc_u_i32_f64()
102 // WEBASSEMBLY: call i64 @llvm.wasm.trunc.signed.i64.f32(float %f) in trunc_s_i64_f32()
103 // WEBASSEMBLY-NEXT: ret in trunc_s_i64_f32()
108 // WEBASSEMBLY: call i64 @llvm.wasm.trunc.unsigned.i64.f32(float %f) in trunc_u_i64_f32()
109 // WEBASSEMBLY-NEXT: ret in trunc_u_i64_f32()
114 // WEBASSEMBLY: call i64 @llvm.wasm.trunc.signed.i64.f64(double %f) in trunc_s_i64_f64()
115 // WEBASSEMBLY-NEXT: ret in trunc_s_i64_f64()
120 // WEBASSEMBLY: call i64 @llvm.wasm.trunc.unsigned.i64.f64(double %f) in trunc_u_i64_f64()
121 // WEBASSEMBLY-NEXT: ret in trunc_u_i64_f64()
126 // WEBASSEMBLY: call i32 @llvm.wasm.trunc.saturate.signed.i32.f32(float %f) in trunc_saturate_s_i32_f32()
127 // WEBASSEMBLY-NEXT: ret in trunc_saturate_s_i32_f32()
132 // WEBASSEMBLY: call i32 @llvm.wasm.trunc.saturate.unsigned.i32.f32(float %f) in trunc_saturate_u_i32_f32()
133 // WEBASSEMBLY-NEXT: ret in trunc_saturate_u_i32_f32()
138 // WEBASSEMBLY: call i32 @llvm.wasm.trunc.saturate.signed.i32.f64(double %f) in trunc_saturate_s_i32_f64()
139 // WEBASSEMBLY-NEXT: ret in trunc_saturate_s_i32_f64()
144 // WEBASSEMBLY: call i32 @llvm.wasm.trunc.saturate.unsigned.i32.f64(double %f) in trunc_saturate_u_i32_f64()
145 // WEBASSEMBLY-NEXT: ret in trunc_saturate_u_i32_f64()
150 // WEBASSEMBLY: call i64 @llvm.wasm.trunc.saturate.signed.i64.f32(float %f) in trunc_saturate_s_i64_f32()
151 // WEBASSEMBLY-NEXT: ret in trunc_saturate_s_i64_f32()
156 // WEBASSEMBLY: call i64 @llvm.wasm.trunc.saturate.unsigned.i64.f32(float %f) in trunc_saturate_u_i64_f32()
157 // WEBASSEMBLY-NEXT: ret in trunc_saturate_u_i64_f32()
162 // WEBASSEMBLY: call i64 @llvm.wasm.trunc.saturate.signed.i64.f64(double %f) in trunc_saturate_s_i64_f64()
163 // WEBASSEMBLY-NEXT: ret in trunc_saturate_s_i64_f64()
168 // WEBASSEMBLY: call i64 @llvm.wasm.trunc.saturate.unsigned.i64.f64(double %f) in trunc_saturate_u_i64_f64()
169 // WEBASSEMBLY-NEXT: ret in trunc_saturate_u_i64_f64()
174 // WEBASSEMBLY: call float @llvm.minimum.f32(float %x, float %y) in min_f32()
175 // WEBASSEMBLY-NEXT: ret in min_f32()
180 // WEBASSEMBLY: call float @llvm.maximum.f32(float %x, float %y) in max_f32()
181 // WEBASSEMBLY-NEXT: ret in max_f32()
186 // WEBASSEMBLY: call double @llvm.minimum.f64(double %x, double %y) in min_f64()
187 // WEBASSEMBLY-NEXT: ret in min_f64()
192 // WEBASSEMBLY: call double @llvm.maximum.f64(double %x, double %y) in max_f64()
193 // WEBASSEMBLY-NEXT: ret in max_f64()
199 // WEBASSEMBLY: extractelement <16 x i8> %v, i32 13 in extract_lane_s_i8x16()
200 // WEBASSEMBLY-NEXT: sext in extract_lane_s_i8x16()
201 // WEBASSEMBLY-NEXT: ret in extract_lane_s_i8x16()
206 // WEBASSEMBLY: extractelement <16 x i8> %v, i32 13 in extract_lane_u_i8x16()
207 // WEBASSEMBLY-NEXT: zext in extract_lane_u_i8x16()
208 // WEBASSEMBLY-NEXT: ret in extract_lane_u_i8x16()
213 // WEBASSEMBLY: extractelement <8 x i16> %v, i32 7 in extract_lane_s_i16x8()
214 // WEBASSEMBLY-NEXT: sext in extract_lane_s_i16x8()
215 // WEBASSEMBLY-NEXT: ret in extract_lane_s_i16x8()
220 // WEBASSEMBLY: extractelement <8 x i16> %v, i32 7 in extract_lane_u_i16x8()
221 // WEBASSEMBLY-NEXT: zext in extract_lane_u_i16x8()
222 // WEBASSEMBLY-NEXT: ret in extract_lane_u_i16x8()
227 // WEBASSEMBLY: extractelement <4 x i32> %v, i32 3 in extract_lane_i32x4()
228 // WEBASSEMBLY-NEXT: ret in extract_lane_i32x4()
233 // WEBASSEMBLY: extractelement <2 x i64> %v, i32 1 in extract_lane_i64x2()
234 // WEBASSEMBLY-NEXT: ret in extract_lane_i64x2()
239 // WEBASSEMBLY: extractelement <4 x float> %v, i32 3 in extract_lane_f32x4()
240 // WEBASSEMBLY-NEXT: ret in extract_lane_f32x4()
245 // WEBASSEMBLY: extractelement <2 x double> %v, i32 1 in extract_lane_f64x2()
246 // WEBASSEMBLY-NEXT: ret in extract_lane_f64x2()
251 // WEBASSEMBLY: trunc i32 %x to i8 in replace_lane_i8x16()
252 // WEBASSEMBLY-NEXT: insertelement <16 x i8> %v, i8 %{{.*}}, i32 13 in replace_lane_i8x16()
253 // WEBASSEMBLY-NEXT: ret in replace_lane_i8x16()
258 // WEBASSEMBLY: trunc i32 %x to i16 in replace_lane_i16x8()
259 // WEBASSEMBLY-NEXT: insertelement <8 x i16> %v, i16 %{{.*}}, i32 7 in replace_lane_i16x8()
260 // WEBASSEMBLY-NEXT: ret in replace_lane_i16x8()
265 // WEBASSEMBLY: insertelement <4 x i32> %v, i32 %x, i32 3 in replace_lane_i32x4()
266 // WEBASSEMBLY-NEXT: ret in replace_lane_i32x4()
271 // WEBASSEMBLY: insertelement <2 x i64> %v, i64 %x, i32 1 in replace_lane_i64x2()
272 // WEBASSEMBLY-NEXT: ret in replace_lane_i64x2()
277 // WEBASSEMBLY: insertelement <4 x float> %v, float %x, i32 3 in replace_lane_f32x4()
278 // WEBASSEMBLY-NEXT: ret in replace_lane_f32x4()
283 // WEBASSEMBLY: insertelement <2 x double> %v, double %x, i32 1 in replace_lane_f64x2()
284 // WEBASSEMBLY-NEXT: ret in replace_lane_f64x2()
289 // WEBASSEMBLY: tail call <16 x i8> @llvm.wasm.load8.lane( in load8_lane()
290 // WEBASSEMBLY-SAME: i8* %p, <16 x i8> %v, i32 0) in load8_lane()
291 // WEBASSEMBLY-NEXT: ret in load8_lane()
296 // WEBASSEMBLY: tail call <8 x i16> @llvm.wasm.load16.lane( in load16_lane()
297 // WEBASSEMBLY-SAME: i16* %p, <8 x i16> %v, i32 0) in load16_lane()
298 // WEBASSEMBLY-NEXT: ret in load16_lane()
303 // WEBASSEMBLY: tail call <4 x i32> @llvm.wasm.load32.lane( in load32_lane()
304 // WEBASSEMBLY-SAME: i32* %p, <4 x i32> %v, i32 0) in load32_lane()
305 // WEBASSEMBLY-NEXT: ret in load32_lane()
310 // WEBASSEMBLY: tail call <2 x i64> @llvm.wasm.load64.lane( in load64_lane()
311 // WEBASSEMBLY-SAME: i64* %p, <2 x i64> %v, i32 0) in load64_lane()
312 // WEBASSEMBLY-NEXT: ret in load64_lane()
317 // WEBASSEMBLY: call void @llvm.wasm.store8.lane( in store8_lane()
318 // WEBASSEMBLY-SAME: i8* %p, <16 x i8> %v, i32 0) in store8_lane()
319 // WEBASSEMBLY-NEXT: ret in store8_lane()
324 // WEBASSEMBLY: call void @llvm.wasm.store16.lane( in store16_lane()
325 // WEBASSEMBLY-SAME: i16* %p, <8 x i16> %v, i32 0) in store16_lane()
326 // WEBASSEMBLY-NEXT: ret in store16_lane()
331 // WEBASSEMBLY: call void @llvm.wasm.store32.lane( in store32_lane()
332 // WEBASSEMBLY-SAME: i32* %p, <4 x i32> %v, i32 0) in store32_lane()
333 // WEBASSEMBLY-NEXT: ret in store32_lane()
338 // WEBASSEMBLY: call void @llvm.wasm.store64.lane( in store64_lane()
339 // WEBASSEMBLY-SAME: i64* %p, <2 x i64> %v, i32 0) in store64_lane()
340 // WEBASSEMBLY-NEXT: ret in store64_lane()
345 // WEBASSEMBLY: call <16 x i8> @llvm.sadd.sat.v16i8( in add_saturate_s_i8x16()
346 // WEBASSEMBLY-SAME: <16 x i8> %x, <16 x i8> %y) in add_saturate_s_i8x16()
347 // WEBASSEMBLY-NEXT: ret in add_saturate_s_i8x16()
352 // WEBASSEMBLY: call <16 x i8> @llvm.uadd.sat.v16i8( in add_saturate_u_i8x16()
353 // WEBASSEMBLY-SAME: <16 x i8> %x, <16 x i8> %y) in add_saturate_u_i8x16()
354 // WEBASSEMBLY-NEXT: ret in add_saturate_u_i8x16()
359 // WEBASSEMBLY: call <8 x i16> @llvm.sadd.sat.v8i16( in add_saturate_s_i16x8()
360 // WEBASSEMBLY-SAME: <8 x i16> %x, <8 x i16> %y) in add_saturate_s_i16x8()
361 // WEBASSEMBLY-NEXT: ret in add_saturate_s_i16x8()
366 // WEBASSEMBLY: call <8 x i16> @llvm.uadd.sat.v8i16( in add_saturate_u_i16x8()
367 // WEBASSEMBLY-SAME: <8 x i16> %x, <8 x i16> %y) in add_saturate_u_i16x8()
368 // WEBASSEMBLY-NEXT: ret in add_saturate_u_i16x8()
373 // WEBASSEMBLY: call <16 x i8> @llvm.wasm.sub.saturate.signed.v16i8( in sub_saturate_s_i8x16()
374 // WEBASSEMBLY-SAME: <16 x i8> %x, <16 x i8> %y) in sub_saturate_s_i8x16()
375 // WEBASSEMBLY-NEXT: ret in sub_saturate_s_i8x16()
380 // WEBASSEMBLY: call <16 x i8> @llvm.wasm.sub.saturate.unsigned.v16i8( in sub_saturate_u_i8x16()
381 // WEBASSEMBLY-SAME: <16 x i8> %x, <16 x i8> %y) in sub_saturate_u_i8x16()
382 // WEBASSEMBLY-NEXT: ret in sub_saturate_u_i8x16()
387 // WEBASSEMBLY: %neg = sub <16 x i8> zeroinitializer, %v in abs_i8x16()
388 // WEBASSEMBLY: %abscond = icmp slt <16 x i8> %v, zeroinitializer in abs_i8x16()
389 // WEBASSEMBLY: %abs = select <16 x i1> %abscond, <16 x i8> %neg, <16 x i8> %v in abs_i8x16()
390 // WEBASSEMBLY: ret <16 x i8> %abs in abs_i8x16()
395 // WEBASSEMBLY: %neg = sub <8 x i16> zeroinitializer, %v in abs_i16x8()
396 // WEBASSEMBLY: %abscond = icmp slt <8 x i16> %v, zeroinitializer in abs_i16x8()
397 // WEBASSEMBLY: %abs = select <8 x i1> %abscond, <8 x i16> %neg, <8 x i16> %v in abs_i16x8()
398 // WEBASSEMBLY: ret <8 x i16> %abs in abs_i16x8()
403 // WEBASSEMBLY: %neg = sub <4 x i32> zeroinitializer, %v in abs_i32x4()
404 // WEBASSEMBLY: %abscond = icmp slt <4 x i32> %v, zeroinitializer in abs_i32x4()
405 // WEBASSEMBLY: %abs = select <4 x i1> %abscond, <4 x i32> %neg, <4 x i32> %v in abs_i32x4()
406 // WEBASSEMBLY: ret <4 x i32> %abs in abs_i32x4()
411 // WEBASSEMBLY: %0 = icmp slt <16 x i8> %x, %y in min_s_i8x16()
412 // WEBASSEMBLY-NEXT: %1 = select <16 x i1> %0, <16 x i8> %x, <16 x i8> %y in min_s_i8x16()
413 // WEBASSEMBLY-NEXT: ret <16 x i8> %1 in min_s_i8x16()
418 // WEBASSEMBLY: %0 = icmp ult <16 x i8> %x, %y in min_u_i8x16()
419 // WEBASSEMBLY-NEXT: %1 = select <16 x i1> %0, <16 x i8> %x, <16 x i8> %y in min_u_i8x16()
420 // WEBASSEMBLY-NEXT: ret <16 x i8> %1 in min_u_i8x16()
425 // WEBASSEMBLY: %0 = icmp sgt <16 x i8> %x, %y in max_s_i8x16()
426 // WEBASSEMBLY-NEXT: %1 = select <16 x i1> %0, <16 x i8> %x, <16 x i8> %y in max_s_i8x16()
427 // WEBASSEMBLY-NEXT: ret <16 x i8> %1 in max_s_i8x16()
432 // WEBASSEMBLY: %0 = icmp ugt <16 x i8> %x, %y in max_u_i8x16()
433 // WEBASSEMBLY-NEXT: %1 = select <16 x i1> %0, <16 x i8> %x, <16 x i8> %y in max_u_i8x16()
434 // WEBASSEMBLY-NEXT: ret <16 x i8> %1 in max_u_i8x16()
439 // WEBASSEMBLY: %0 = icmp slt <8 x i16> %x, %y in min_s_i16x8()
440 // WEBASSEMBLY-NEXT: %1 = select <8 x i1> %0, <8 x i16> %x, <8 x i16> %y in min_s_i16x8()
441 // WEBASSEMBLY-NEXT: ret <8 x i16> %1 in min_s_i16x8()
446 // WEBASSEMBLY: %0 = icmp ult <8 x i16> %x, %y in min_u_i16x8()
447 // WEBASSEMBLY-NEXT: %1 = select <8 x i1> %0, <8 x i16> %x, <8 x i16> %y in min_u_i16x8()
448 // WEBASSEMBLY-NEXT: ret <8 x i16> %1 in min_u_i16x8()
453 // WEBASSEMBLY: %0 = icmp sgt <8 x i16> %x, %y in max_s_i16x8()
454 // WEBASSEMBLY-NEXT: %1 = select <8 x i1> %0, <8 x i16> %x, <8 x i16> %y in max_s_i16x8()
455 // WEBASSEMBLY-NEXT: ret <8 x i16> %1 in max_s_i16x8()
460 // WEBASSEMBLY: %0 = icmp ugt <8 x i16> %x, %y in max_u_i16x8()
461 // WEBASSEMBLY-NEXT: %1 = select <8 x i1> %0, <8 x i16> %x, <8 x i16> %y in max_u_i16x8()
462 // WEBASSEMBLY-NEXT: ret <8 x i16> %1 in max_u_i16x8()
467 // WEBASSEMBLY: %0 = icmp slt <4 x i32> %x, %y in min_s_i32x4()
468 // WEBASSEMBLY-NEXT: %1 = select <4 x i1> %0, <4 x i32> %x, <4 x i32> %y in min_s_i32x4()
469 // WEBASSEMBLY-NEXT: ret <4 x i32> %1 in min_s_i32x4()
474 // WEBASSEMBLY: %0 = icmp ult <4 x i32> %x, %y in min_u_i32x4()
475 // WEBASSEMBLY-NEXT: %1 = select <4 x i1> %0, <4 x i32> %x, <4 x i32> %y in min_u_i32x4()
476 // WEBASSEMBLY-NEXT: ret <4 x i32> %1 in min_u_i32x4()
481 // WEBASSEMBLY: %0 = icmp sgt <4 x i32> %x, %y in max_s_i32x4()
482 // WEBASSEMBLY-NEXT: %1 = select <4 x i1> %0, <4 x i32> %x, <4 x i32> %y in max_s_i32x4()
483 // WEBASSEMBLY-NEXT: ret <4 x i32> %1 in max_s_i32x4()
488 // WEBASSEMBLY: %0 = icmp ugt <4 x i32> %x, %y in max_u_i32x4()
489 // WEBASSEMBLY-NEXT: %1 = select <4 x i1> %0, <4 x i32> %x, <4 x i32> %y in max_u_i32x4()
490 // WEBASSEMBLY-NEXT: ret <4 x i32> %1 in max_u_i32x4()
495 // WEBASSEMBLY: call <8 x i16> @llvm.wasm.sub.saturate.signed.v8i16( in sub_saturate_s_i16x8()
496 // WEBASSEMBLY-SAME: <8 x i16> %x, <8 x i16> %y) in sub_saturate_s_i16x8()
497 // WEBASSEMBLY-NEXT: ret in sub_saturate_s_i16x8()
502 // WEBASSEMBLY: call <8 x i16> @llvm.wasm.sub.saturate.unsigned.v8i16( in sub_saturate_u_i16x8()
503 // WEBASSEMBLY-SAME: <8 x i16> %x, <8 x i16> %y) in sub_saturate_u_i16x8()
504 // WEBASSEMBLY-NEXT: ret in sub_saturate_u_i16x8()
509 // WEBASSEMBLY: call <16 x i8> @llvm.wasm.avgr.unsigned.v16i8( in avgr_u_i8x16()
510 // WEBASSEMBLY-SAME: <16 x i8> %x, <16 x i8> %y) in avgr_u_i8x16()
511 // WEBASSEMBLY-NEXT: ret in avgr_u_i8x16()
516 // WEBASSEMBLY: call <8 x i16> @llvm.wasm.avgr.unsigned.v8i16( in avgr_u_i16x8()
517 // WEBASSEMBLY-SAME: <8 x i16> %x, <8 x i16> %y) in avgr_u_i16x8()
518 // WEBASSEMBLY-NEXT: ret in avgr_u_i16x8()
523 // WEBASSEMBLY: call <8 x i16> @llvm.wasm.q15mulr.saturate.signed( in q15mulr_saturate_s_i16x8()
524 // WEBASSEMBLY-SAME: <8 x i16> %x, <8 x i16> %y) in q15mulr_saturate_s_i16x8()
525 // WEBASSEMBLY-NEXT: ret in q15mulr_saturate_s_i16x8()
530 // WEBASSEMBLY: call <8 x i16> @llvm.wasm.extmul.low.signed.v8i16( in extmul_low_i8x16_s_i16x8()
531 // WEBASSEMBLY-SAME: <16 x i8> %x, <16 x i8> %y) in extmul_low_i8x16_s_i16x8()
532 // WEBASSEMBLY-NEXT: ret in extmul_low_i8x16_s_i16x8()
537 // WEBASSEMBLY: call <8 x i16> @llvm.wasm.extmul.high.signed.v8i16( in extmul_high_i8x16_s_i16x8()
538 // WEBASSEMBLY-SAME: <16 x i8> %x, <16 x i8> %y) in extmul_high_i8x16_s_i16x8()
539 // WEBASSEMBLY-NEXT: ret in extmul_high_i8x16_s_i16x8()
544 // WEBASSEMBLY: call <8 x i16> @llvm.wasm.extmul.low.unsigned.v8i16( in extmul_low_i8x16_u_i16x8()
545 // WEBASSEMBLY-SAME: <16 x i8> %x, <16 x i8> %y) in extmul_low_i8x16_u_i16x8()
546 // WEBASSEMBLY-NEXT: ret in extmul_low_i8x16_u_i16x8()
551 // WEBASSEMBLY: call <8 x i16> @llvm.wasm.extmul.high.unsigned.v8i16( in extmul_high_i8x16_u_i16x8()
552 // WEBASSEMBLY-SAME: <16 x i8> %x, <16 x i8> %y) in extmul_high_i8x16_u_i16x8()
553 // WEBASSEMBLY-NEXT: ret in extmul_high_i8x16_u_i16x8()
558 // WEBASSEMBLY: call <4 x i32> @llvm.wasm.extmul.low.signed.v4i32( in extmul_low_i16x8_s_i32x4()
559 // WEBASSEMBLY-SAME: <8 x i16> %x, <8 x i16> %y) in extmul_low_i16x8_s_i32x4()
560 // WEBASSEMBLY-NEXT: ret in extmul_low_i16x8_s_i32x4()
565 // WEBASSEMBLY: call <4 x i32> @llvm.wasm.extmul.high.signed.v4i32( in extmul_high_i16x8_s_i32x4()
566 // WEBASSEMBLY-SAME: <8 x i16> %x, <8 x i16> %y) in extmul_high_i16x8_s_i32x4()
567 // WEBASSEMBLY-NEXT: ret in extmul_high_i16x8_s_i32x4()
572 // WEBASSEMBLY: call <4 x i32> @llvm.wasm.extmul.low.unsigned.v4i32( in extmul_low_i16x8_u_i32x4()
573 // WEBASSEMBLY-SAME: <8 x i16> %x, <8 x i16> %y) in extmul_low_i16x8_u_i32x4()
574 // WEBASSEMBLY-NEXT: ret in extmul_low_i16x8_u_i32x4()
579 // WEBASSEMBLY: call <4 x i32> @llvm.wasm.extmul.high.unsigned.v4i32( in extmul_high_i16x8_u_i32x4()
580 // WEBASSEMBLY-SAME: <8 x i16> %x, <8 x i16> %y) in extmul_high_i16x8_u_i32x4()
581 // WEBASSEMBLY-NEXT: ret in extmul_high_i16x8_u_i32x4()
586 // WEBASSEMBLY: call <2 x i64> @llvm.wasm.extmul.low.signed.v2i64( in extmul_low_i32x4_s_i64x2()
587 // WEBASSEMBLY-SAME: <4 x i32> %x, <4 x i32> %y) in extmul_low_i32x4_s_i64x2()
588 // WEBASSEMBLY-NEXT: ret in extmul_low_i32x4_s_i64x2()
593 // WEBASSEMBLY: call <2 x i64> @llvm.wasm.extmul.high.signed.v2i64( in extmul_high_i32x4_s_i64x2()
594 // WEBASSEMBLY-SAME: <4 x i32> %x, <4 x i32> %y) in extmul_high_i32x4_s_i64x2()
595 // WEBASSEMBLY-NEXT: ret in extmul_high_i32x4_s_i64x2()
600 // WEBASSEMBLY: call <2 x i64> @llvm.wasm.extmul.low.unsigned.v2i64( in extmul_low_i32x4_u_i64x2()
601 // WEBASSEMBLY-SAME: <4 x i32> %x, <4 x i32> %y) in extmul_low_i32x4_u_i64x2()
602 // WEBASSEMBLY-NEXT: ret in extmul_low_i32x4_u_i64x2()
607 // WEBASSEMBLY: call <2 x i64> @llvm.wasm.extmul.high.unsigned.v2i64( in extmul_high_i32x4_u_i64x2()
608 // WEBASSEMBLY-SAME: <4 x i32> %x, <4 x i32> %y) in extmul_high_i32x4_u_i64x2()
609 // WEBASSEMBLY-NEXT: ret in extmul_high_i32x4_u_i64x2()
614 // WEBASSEMBLY: call <4 x i32> @llvm.wasm.dot(<8 x i16> %x, <8 x i16> %y) in dot_i16x8_s()
615 // WEBASSEMBLY-NEXT: ret in dot_i16x8_s()
620 // WEBASSEMBLY: call <4 x i32> @llvm.wasm.bitselect.v4i32( in bitselect()
621 // WEBASSEMBLY-SAME: <4 x i32> %x, <4 x i32> %y, <4 x i32> %c) in bitselect()
622 // WEBASSEMBLY-NEXT: ret in bitselect()
627 // WEBASSEMBLY: call <16 x i8> @llvm.wasm.signselect.v16i8( in signselect_i8x16()
628 // WEBASSEMBLY-SAME: <16 x i8> %x, <16 x i8> %y, <16 x i8> %c) in signselect_i8x16()
629 // WEBASSEMBLY-NEXT: ret in signselect_i8x16()
634 // WEBASSEMBLY: call <8 x i16> @llvm.wasm.signselect.v8i16( in signselect_i16x8()
635 // WEBASSEMBLY-SAME: <8 x i16> %x, <8 x i16> %y, <8 x i16> %c) in signselect_i16x8()
636 // WEBASSEMBLY-NEXT: ret in signselect_i16x8()
641 // WEBASSEMBLY: call <4 x i32> @llvm.wasm.signselect.v4i32( in signselect_i32x4()
642 // WEBASSEMBLY-SAME: <4 x i32> %x, <4 x i32> %y, <4 x i32> %c) in signselect_i32x4()
643 // WEBASSEMBLY-NEXT: ret in signselect_i32x4()
648 // WEBASSEMBLY: call <2 x i64> @llvm.wasm.signselect.v2i64( in signselect_i64x2()
649 // WEBASSEMBLY-SAME: <2 x i64> %x, <2 x i64> %y, <2 x i64> %c) in signselect_i64x2()
650 // WEBASSEMBLY-NEXT: ret in signselect_i64x2()
655 // WEBASSEMBLY: call <16 x i8> @llvm.wasm.popcnt(<16 x i8> %x) in popcnt()
656 // WEBASSEMBLY-NEXT: ret in popcnt()
661 // WEBASSEMBLY: call <2 x i64> @llvm.wasm.eq(<2 x i64> %x, <2 x i64> %y) in eq_i64x2()
662 // WEBASSEMBLY-NEXT: ret in eq_i64x2()
667 // WEBASSEMBLY: call i32 @llvm.wasm.anytrue.v16i8(<16 x i8> %x) in any_true_i8x16()
668 // WEBASSEMBLY: ret in any_true_i8x16()
673 // WEBASSEMBLY: call i32 @llvm.wasm.anytrue.v8i16(<8 x i16> %x) in any_true_i16x8()
674 // WEBASSEMBLY: ret in any_true_i16x8()
679 // WEBASSEMBLY: call i32 @llvm.wasm.anytrue.v4i32(<4 x i32> %x) in any_true_i32x4()
680 // WEBASSEMBLY: ret in any_true_i32x4()
685 // WEBASSEMBLY: call i32 @llvm.wasm.anytrue.v2i64(<2 x i64> %x) in any_true_i64x2()
686 // WEBASSEMBLY: ret in any_true_i64x2()
691 // WEBASSEMBLY: call i32 @llvm.wasm.alltrue.v16i8(<16 x i8> %x) in all_true_i8x16()
692 // WEBASSEMBLY: ret in all_true_i8x16()
697 // WEBASSEMBLY: call i32 @llvm.wasm.alltrue.v8i16(<8 x i16> %x) in all_true_i16x8()
698 // WEBASSEMBLY: ret in all_true_i16x8()
703 // WEBASSEMBLY: call i32 @llvm.wasm.alltrue.v4i32(<4 x i32> %x) in all_true_i32x4()
704 // WEBASSEMBLY: ret in all_true_i32x4()
709 // WEBASSEMBLY: call i32 @llvm.wasm.alltrue.v2i64(<2 x i64> %x) in all_true_i64x2()
710 // WEBASSEMBLY: ret in all_true_i64x2()
715 // WEBASSEMBLY: call i32 @llvm.wasm.bitmask.v16i8(<16 x i8> %x) in bitmask_i8x16()
716 // WEBASSEMBLY: ret in bitmask_i8x16()
721 // WEBASSEMBLY: call i32 @llvm.wasm.bitmask.v8i16(<8 x i16> %x) in bitmask_i16x8()
722 // WEBASSEMBLY: ret in bitmask_i16x8()
727 // WEBASSEMBLY: call i32 @llvm.wasm.bitmask.v4i32(<4 x i32> %x) in bitmask_i32x4()
728 // WEBASSEMBLY: ret in bitmask_i32x4()
733 // WEBASSEMBLY: call i32 @llvm.wasm.bitmask.v2i64(<2 x i64> %x) in bitmask_i64x2()
734 // WEBASSEMBLY: ret in bitmask_i64x2()
739 // WEBASSEMBLY: call <4 x float> @llvm.fabs.v4f32(<4 x float> %x) in abs_f32x4()
740 // WEBASSEMBLY: ret in abs_f32x4()
745 // WEBASSEMBLY: call <2 x double> @llvm.fabs.v2f64(<2 x double> %x) in abs_f64x2()
746 // WEBASSEMBLY: ret in abs_f64x2()
751 // WEBASSEMBLY: call <4 x float> @llvm.minimum.v4f32( in min_f32x4()
752 // WEBASSEMBLY-SAME: <4 x float> %x, <4 x float> %y) in min_f32x4()
753 // WEBASSEMBLY-NEXT: ret in min_f32x4()
758 // WEBASSEMBLY: call <4 x float> @llvm.maximum.v4f32( in max_f32x4()
759 // WEBASSEMBLY-SAME: <4 x float> %x, <4 x float> %y) in max_f32x4()
760 // WEBASSEMBLY-NEXT: ret in max_f32x4()
765 // WEBASSEMBLY: call <4 x float> @llvm.wasm.pmin.v4f32( in pmin_f32x4()
766 // WEBASSEMBLY-SAME: <4 x float> %x, <4 x float> %y) in pmin_f32x4()
767 // WEBASSEMBLY-NEXT: ret in pmin_f32x4()
772 // WEBASSEMBLY: call <4 x float> @llvm.wasm.pmax.v4f32( in pmax_f32x4()
773 // WEBASSEMBLY-SAME: <4 x float> %x, <4 x float> %y) in pmax_f32x4()
774 // WEBASSEMBLY-NEXT: ret in pmax_f32x4()
779 // WEBASSEMBLY: call <2 x double> @llvm.minimum.v2f64( in min_f64x2()
780 // WEBASSEMBLY-SAME: <2 x double> %x, <2 x double> %y) in min_f64x2()
781 // WEBASSEMBLY-NEXT: ret in min_f64x2()
786 // WEBASSEMBLY: call <2 x double> @llvm.maximum.v2f64( in max_f64x2()
787 // WEBASSEMBLY-SAME: <2 x double> %x, <2 x double> %y) in max_f64x2()
788 // WEBASSEMBLY-NEXT: ret in max_f64x2()
793 // WEBASSEMBLY: call <2 x double> @llvm.wasm.pmin.v2f64( in pmin_f64x2()
794 // WEBASSEMBLY-SAME: <2 x double> %x, <2 x double> %y) in pmin_f64x2()
795 // WEBASSEMBLY-NEXT: ret in pmin_f64x2()
800 // WEBASSEMBLY: call <2 x double> @llvm.wasm.pmax.v2f64( in pmax_f64x2()
801 // WEBASSEMBLY-SAME: <2 x double> %x, <2 x double> %y) in pmax_f64x2()
802 // WEBASSEMBLY-NEXT: ret in pmax_f64x2()
807 // WEBASSEMBLY: call <4 x float> @llvm.wasm.ceil.v4f32(<4 x float> %x) in ceil_f32x4()
808 // WEBASSEMBLY: ret in ceil_f32x4()
813 // WEBASSEMBLY: call <4 x float> @llvm.wasm.floor.v4f32(<4 x float> %x) in floor_f32x4()
814 // WEBASSEMBLY: ret in floor_f32x4()
819 // WEBASSEMBLY: call <4 x float> @llvm.wasm.trunc.v4f32(<4 x float> %x) in trunc_f32x4()
820 // WEBASSEMBLY: ret in trunc_f32x4()
825 // WEBASSEMBLY: call <4 x float> @llvm.wasm.nearest.v4f32(<4 x float> %x) in nearest_f32x4()
826 // WEBASSEMBLY: ret in nearest_f32x4()
831 // WEBASSEMBLY: call <2 x double> @llvm.wasm.ceil.v2f64(<2 x double> %x) in ceil_f64x2()
832 // WEBASSEMBLY: ret in ceil_f64x2()
837 // WEBASSEMBLY: call <2 x double> @llvm.wasm.floor.v2f64(<2 x double> %x) in floor_f64x2()
838 // WEBASSEMBLY: ret in floor_f64x2()
843 // WEBASSEMBLY: call <2 x double> @llvm.wasm.trunc.v2f64(<2 x double> %x) in trunc_f64x2()
844 // WEBASSEMBLY: ret in trunc_f64x2()
849 // WEBASSEMBLY: call <2 x double> @llvm.wasm.nearest.v2f64(<2 x double> %x) in nearest_f64x2()
850 // WEBASSEMBLY: ret in nearest_f64x2()
855 // WEBASSEMBLY: call <4 x float> @llvm.sqrt.v4f32(<4 x float> %x) in sqrt_f32x4()
856 // WEBASSEMBLY: ret in sqrt_f32x4()
861 // WEBASSEMBLY: call <2 x double> @llvm.sqrt.v2f64(<2 x double> %x) in sqrt_f64x2()
862 // WEBASSEMBLY: ret in sqrt_f64x2()
867 // WEBASSEMBLY: call <4 x float> @llvm.wasm.qfma.v4f32( in qfma_f32x4()
868 // WEBASSEMBLY-SAME: <4 x float> %a, <4 x float> %b, <4 x float> %c) in qfma_f32x4()
869 // WEBASSEMBLY-NEXT: ret in qfma_f32x4()
874 // WEBASSEMBLY: call <4 x float> @llvm.wasm.qfms.v4f32( in qfms_f32x4()
875 // WEBASSEMBLY-SAME: <4 x float> %a, <4 x float> %b, <4 x float> %c) in qfms_f32x4()
876 // WEBASSEMBLY-NEXT: ret in qfms_f32x4()
881 // WEBASSEMBLY: call <2 x double> @llvm.wasm.qfma.v2f64( in qfma_f64x2()
882 // WEBASSEMBLY-SAME: <2 x double> %a, <2 x double> %b, <2 x double> %c) in qfma_f64x2()
883 // WEBASSEMBLY-NEXT: ret in qfma_f64x2()
888 // WEBASSEMBLY: call <2 x double> @llvm.wasm.qfms.v2f64( in qfms_f64x2()
889 // WEBASSEMBLY-SAME: <2 x double> %a, <2 x double> %b, <2 x double> %c) in qfms_f64x2()
890 // WEBASSEMBLY-NEXT: ret in qfms_f64x2()
895 // WEBASSEMBLY: call <4 x i32> @llvm.wasm.trunc.saturate.signed.v4i32.v4f32(<4 x float> %f) in trunc_saturate_s_i32x4_f32x4()
896 // WEBASSEMBLY-NEXT: ret in trunc_saturate_s_i32x4_f32x4()
901 // WEBASSEMBLY: call <4 x i32> @llvm.wasm.trunc.saturate.unsigned.v4i32.v4f32(<4 x float> %f) in trunc_saturate_u_i32x4_f32x4()
902 // WEBASSEMBLY-NEXT: ret in trunc_saturate_u_i32x4_f32x4()
907 // WEBASSEMBLY: call <16 x i8> @llvm.wasm.narrow.signed.v16i8.v8i16( in narrow_s_i8x16_i16x8()
908 // WEBASSEMBLY-SAME: <8 x i16> %low, <8 x i16> %high) in narrow_s_i8x16_i16x8()
909 // WEBASSEMBLY: ret in narrow_s_i8x16_i16x8()
914 // WEBASSEMBLY: call <16 x i8> @llvm.wasm.narrow.unsigned.v16i8.v8i16( in narrow_u_i8x16_i16x8()
915 // WEBASSEMBLY-SAME: <8 x i16> %low, <8 x i16> %high) in narrow_u_i8x16_i16x8()
916 // WEBASSEMBLY: ret in narrow_u_i8x16_i16x8()
921 // WEBASSEMBLY: call <8 x i16> @llvm.wasm.narrow.signed.v8i16.v4i32( in narrow_s_i16x8_i32x4()
922 // WEBASSEMBLY-SAME: <4 x i32> %low, <4 x i32> %high) in narrow_s_i16x8_i32x4()
923 // WEBASSEMBLY: ret in narrow_s_i16x8_i32x4()
928 // WEBASSEMBLY: call <8 x i16> @llvm.wasm.narrow.unsigned.v8i16.v4i32( in narrow_u_i16x8_i32x4()
929 // WEBASSEMBLY-SAME: <4 x i32> %low, <4 x i32> %high) in narrow_u_i16x8_i32x4()
930 // WEBASSEMBLY: ret in narrow_u_i16x8_i32x4()
935 // WEBASSEMBLY: call <2 x i64> @llvm.wasm.widen.low.signed(<4 x i32> %x) in widen_low_s_i32x4_i64x2()
936 // WEBASSEMBLY: ret in widen_low_s_i32x4_i64x2()
941 // WEBASSEMBLY: call <2 x i64> @llvm.wasm.widen.high.signed(<4 x i32> %x) in widen_high_s_i32x4_i64x2()
942 // WEBASSEMBLY: ret in widen_high_s_i32x4_i64x2()
947 // WEBASSEMBLY: call <2 x i64> @llvm.wasm.widen.low.unsigned(<4 x i32> %x) in widen_low_u_i32x4_i64x2()
948 // WEBASSEMBLY: ret in widen_low_u_i32x4_i64x2()
953 // WEBASSEMBLY: call <2 x i64> @llvm.wasm.widen.high.unsigned(<4 x i32> %x) in widen_high_u_i32x4_i64x2()
954 // WEBASSEMBLY: ret in widen_high_u_i32x4_i64x2()
959 // WEBASSEMBLY: call <4 x i32> @llvm.wasm.load32.zero(i32* %p) in load32_zero()
960 // WEBASSEMBLY: ret in load32_zero()
965 // WEBASSEMBLY: call <2 x i64> @llvm.wasm.load64.zero(i64* %p) in load64_zero()
966 // WEBASSEMBLY: ret in load64_zero()
971 // WEBASSEMBLY: call <16 x i8> @llvm.wasm.swizzle(<16 x i8> %x, <16 x i8> %y) in swizzle_v8x16()
977 // WEBASSEMBLY: call <16 x i8> @llvm.wasm.shuffle(<16 x i8> %x, <16 x i8> %y, in shuffle()
978 // WEBASSEMBLY-SAME: i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, in shuffle()
979 // WEBASSEMBLY-SAME: i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, in shuffle()
980 // WEBASSEMBLY-SAME: i32 15 in shuffle()
981 // WEBASSEMBLY-NEXT: ret in shuffle()