@@ -541,6 +541,8 @@ export namespace BuiltinNames {
541
541
export const i16x8_extmul_low_i8x16_u = "~lib/builtins/i16x8.extmul_low_i8x16_u" ;
542
542
export const i16x8_extmul_high_i8x16_s = "~lib/builtins/i16x8.extmul_high_i8x16_s" ;
543
543
export const i16x8_extmul_high_i8x16_u = "~lib/builtins/i16x8.extmul_high_i8x16_u" ;
544
+ export const i16x8_shuffle = "~lib/builtins/i16x8.shuffle" ;
545
+ export const i16x8_swizzle = "~lib/builtins/i16x8.swizzle" ;
544
546
545
547
export const i32x4_splat = "~lib/builtins/i32x4.splat" ;
546
548
export const i32x4_extract_lane = "~lib/builtins/i32x4.extract_lane" ;
@@ -584,6 +586,8 @@ export namespace BuiltinNames {
584
586
export const i32x4_extmul_low_i16x8_u = "~lib/builtins/i32x4.extmul_low_i16x8_u" ;
585
587
export const i32x4_extmul_high_i16x8_s = "~lib/builtins/i32x4.extmul_high_i16x8_s" ;
586
588
export const i32x4_extmul_high_i16x8_u = "~lib/builtins/i32x4.extmul_high_i16x8_u" ;
589
+ export const i32x4_shuffle = "~lib/builtins/i32x4.shuffle" ;
590
+ export const i32x4_swizzle = "~lib/builtins/i32x4.swizzle" ;
587
591
588
592
export const i64x2_splat = "~lib/builtins/i64x2.splat" ;
589
593
export const i64x2_extract_lane = "~lib/builtins/i64x2.extract_lane" ;
@@ -616,6 +620,8 @@ export namespace BuiltinNames {
616
620
export const i64x2_extmul_low_i32x4_u = "~lib/builtins/i64x2.extmul_low_i32x4_u" ;
617
621
export const i64x2_extmul_high_i32x4_s = "~lib/builtins/i64x2.extmul_high_i32x4_s" ;
618
622
export const i64x2_extmul_high_i32x4_u = "~lib/builtins/i64x2.extmul_high_i32x4_u" ;
623
+ export const i64x2_shuffle = "~lib/builtins/i64x2.shuffle" ;
624
+ export const i64x2_swizzle = "~lib/builtins/i64x2.swizzle" ;
619
625
620
626
export const f32x4_splat = "~lib/builtins/f32x4.splat" ;
621
627
export const f32x4_extract_lane = "~lib/builtins/f32x4.extract_lane" ;
@@ -644,6 +650,8 @@ export namespace BuiltinNames {
644
650
export const f32x4_convert_i32x4_s = "~lib/builtins/f32x4.convert_i32x4_s" ;
645
651
export const f32x4_convert_i32x4_u = "~lib/builtins/f32x4.convert_i32x4_u" ;
646
652
export const f32x4_demote_f64x2_zero = "~lib/builtins/f32x4.demote_f64x2_zero" ;
653
+ export const f32x4_shuffle = "~lib/builtins/f32x4.shuffle" ;
654
+ export const f32x4_swizzle = "~lib/builtins/f32x4.swizzle" ;
647
655
648
656
export const f64x2_splat = "~lib/builtins/f64x2.splat" ;
649
657
export const f64x2_extract_lane = "~lib/builtins/f64x2.extract_lane" ;
@@ -672,6 +680,8 @@ export namespace BuiltinNames {
672
680
export const f64x2_convert_low_i32x4_s = "~lib/builtins/f64x2.convert_low_i32x4_s" ;
673
681
export const f64x2_convert_low_i32x4_u = "~lib/builtins/f64x2.convert_low_i32x4_u" ;
674
682
export const f64x2_promote_low_f32x4 = "~lib/builtins/f64x2.promote_low_f32x4" ;
683
+ export const f64x2_shuffle = "~lib/builtins/f64x2.shuffle" ;
684
+ export const f64x2_swizzle = "~lib/builtins/f64x2.swizzle" ;
675
685
676
686
export const i31_new = "~lib/builtins/i31.new" ;
677
687
export const i31_get = "~lib/builtins/i31.get" ;
@@ -8337,7 +8347,6 @@ builtins.set(BuiltinNames.i8x16_shuffle, builtin_i8x16_shuffle);
8337
8347
8338
8348
// i8x16.swizzle -> v128.swizzle
8339
8349
function builtin_i8x16_swizzle ( ctx : BuiltinContext ) : ExpressionRef {
8340
- checkTypeAbsent ( ctx ) ;
8341
8350
ctx . typeArguments = null ;
8342
8351
ctx . contextualType = Type . v128 ;
8343
8352
return builtin_v128_swizzle ( ctx ) ;
@@ -8758,6 +8767,23 @@ function builtin_i16x8_extmul_high_i8x16_u(ctx: BuiltinContext): ExpressionRef {
8758
8767
}
8759
8768
builtins . set ( BuiltinNames . i16x8_extmul_high_i8x16_u , builtin_i16x8_extmul_high_i8x16_u ) ;
8760
8769
8770
+ // i16x8.shuffle -> v128.shuffle<i16>
8771
+ function builtin_i16x8_shuffle ( ctx : BuiltinContext ) : ExpressionRef {
8772
+ checkTypeAbsent ( ctx ) ;
8773
+ ctx . typeArguments = [ Type . i16 ] ;
8774
+ ctx . contextualType = Type . v128 ;
8775
+ return builtin_v128_shuffle ( ctx ) ;
8776
+ }
8777
+ builtins . set ( BuiltinNames . i16x8_shuffle , builtin_i16x8_shuffle ) ;
8778
+
8779
+ // i16x8.swizzle -> v128.swizzle
8780
+ function builtin_i16x8_swizzle ( ctx : BuiltinContext ) : ExpressionRef {
8781
+ ctx . typeArguments = null ;
8782
+ ctx . contextualType = Type . v128 ;
8783
+ return builtin_v128_swizzle ( ctx ) ;
8784
+ }
8785
+ builtins . set ( BuiltinNames . i16x8_swizzle , builtin_i16x8_swizzle ) ;
8786
+
8761
8787
// i32x4.splat -> v128.splat<i32>
8762
8788
function builtin_i32x4_splat ( ctx : BuiltinContext ) : ExpressionRef {
8763
8789
checkTypeAbsent ( ctx ) ;
@@ -9136,6 +9162,23 @@ function builtin_i32x4_extmul_high_i16x8_u(ctx: BuiltinContext): ExpressionRef {
9136
9162
}
9137
9163
builtins . set ( BuiltinNames . i32x4_extmul_high_i16x8_u , builtin_i32x4_extmul_high_i16x8_u ) ;
9138
9164
9165
+ // i32x4.shuffle -> v128.shuffle<i32>
9166
+ function builtin_i32x4_shuffle ( ctx : BuiltinContext ) : ExpressionRef {
9167
+ checkTypeAbsent ( ctx ) ;
9168
+ ctx . typeArguments = [ Type . i32 ] ;
9169
+ ctx . contextualType = Type . v128 ;
9170
+ return builtin_v128_shuffle ( ctx ) ;
9171
+ }
9172
+ builtins . set ( BuiltinNames . i32x4_shuffle , builtin_i32x4_shuffle ) ;
9173
+
9174
+ // i32x4.swizzle -> v128.swizzle
9175
+ function builtin_i32x4_swizzle ( ctx : BuiltinContext ) : ExpressionRef {
9176
+ ctx . typeArguments = null ;
9177
+ ctx . contextualType = Type . v128 ;
9178
+ return builtin_v128_swizzle ( ctx ) ;
9179
+ }
9180
+ builtins . set ( BuiltinNames . i32x4_swizzle , builtin_i32x4_swizzle ) ;
9181
+
9139
9182
// i64x2.splat -> v128.splat<i64>
9140
9183
function builtin_i64x2_splat ( ctx : BuiltinContext ) : ExpressionRef {
9141
9184
checkTypeAbsent ( ctx ) ;
@@ -9379,6 +9422,23 @@ function builtin_i64x2_extmul_high_i32x4_u(ctx: BuiltinContext): ExpressionRef {
9379
9422
}
9380
9423
builtins . set ( BuiltinNames . i64x2_extmul_high_i32x4_u , builtin_i64x2_extmul_high_i32x4_u ) ;
9381
9424
9425
+ // i64x2.shuffle -> v128.shuffle<i64>
9426
+ function builtin_i64x2_shuffle ( ctx : BuiltinContext ) : ExpressionRef {
9427
+ checkTypeAbsent ( ctx ) ;
9428
+ ctx . typeArguments = [ Type . i64 ] ;
9429
+ ctx . contextualType = Type . v128 ;
9430
+ return builtin_v128_shuffle ( ctx ) ;
9431
+ }
9432
+ builtins . set ( BuiltinNames . i64x2_shuffle , builtin_i64x2_shuffle ) ;
9433
+
9434
+ // i64x2.swizzle -> v128.swizzle
9435
+ function builtin_i64x2_swizzle ( ctx : BuiltinContext ) : ExpressionRef {
9436
+ ctx . typeArguments = null ;
9437
+ ctx . contextualType = Type . v128 ;
9438
+ return builtin_v128_swizzle ( ctx ) ;
9439
+ }
9440
+ builtins . set ( BuiltinNames . i64x2_swizzle , builtin_i64x2_swizzle ) ;
9441
+
9382
9442
// f32x4.splat -> v128.splat<f32>
9383
9443
function builtin_f32x4_splat ( ctx : BuiltinContext ) : ExpressionRef {
9384
9444
checkTypeAbsent ( ctx ) ;
@@ -9622,6 +9682,23 @@ function builtin_f32x4_demote_f64x2_zero(ctx: BuiltinContext): ExpressionRef {
9622
9682
}
9623
9683
builtins . set ( BuiltinNames . f32x4_demote_f64x2_zero , builtin_f32x4_demote_f64x2_zero ) ;
9624
9684
9685
+ // f32x4.shuffle -> v128.shuffle<f32>
9686
+ function builtin_f32x4_shuffle ( ctx : BuiltinContext ) : ExpressionRef {
9687
+ checkTypeAbsent ( ctx ) ;
9688
+ ctx . typeArguments = [ Type . f32 ] ;
9689
+ ctx . contextualType = Type . v128 ;
9690
+ return builtin_v128_shuffle ( ctx ) ;
9691
+ }
9692
+ builtins . set ( BuiltinNames . f32x4_shuffle , builtin_f32x4_shuffle ) ;
9693
+
9694
+ // f32x4.swizzle -> v128.swizzle
9695
+ function builtin_f32x4_swizzle ( ctx : BuiltinContext ) : ExpressionRef {
9696
+ ctx . typeArguments = null ;
9697
+ ctx . contextualType = Type . v128 ;
9698
+ return builtin_v128_swizzle ( ctx ) ;
9699
+ }
9700
+ builtins . set ( BuiltinNames . f32x4_swizzle , builtin_f32x4_swizzle ) ;
9701
+
9625
9702
// f64x2.splat -> v128.splat<f64>
9626
9703
function builtin_f64x2_splat ( ctx : BuiltinContext ) : ExpressionRef {
9627
9704
checkTypeAbsent ( ctx ) ;
@@ -9865,6 +9942,23 @@ function builtin_f64x4_promote_low_f32x4(ctx: BuiltinContext): ExpressionRef {
9865
9942
}
9866
9943
builtins . set ( BuiltinNames . f64x2_promote_low_f32x4 , builtin_f64x4_promote_low_f32x4 ) ;
9867
9944
9945
+ // f64x2.shuffle -> v128.shuffle<f32>
9946
+ function builtin_f64x2_shuffle ( ctx : BuiltinContext ) : ExpressionRef {
9947
+ checkTypeAbsent ( ctx ) ;
9948
+ ctx . typeArguments = [ Type . f64 ] ;
9949
+ ctx . contextualType = Type . v128 ;
9950
+ return builtin_v128_shuffle ( ctx ) ;
9951
+ }
9952
+ builtins . set ( BuiltinNames . f64x2_shuffle , builtin_f64x2_shuffle ) ;
9953
+
9954
+ // f64x2.swizzle -> v128.swizzle
9955
+ function builtin_f64x2_swizzle ( ctx : BuiltinContext ) : ExpressionRef {
9956
+ ctx . typeArguments = null ;
9957
+ ctx . contextualType = Type . v128 ;
9958
+ return builtin_v128_swizzle ( ctx ) ;
9959
+ }
9960
+ builtins . set ( BuiltinNames . f64x2_swizzle , builtin_f64x2_swizzle ) ;
9961
+
9868
9962
// === Internal helpers =======================================================================
9869
9963
9870
9964
/** Compiles the `visit_globals` function. */
0 commit comments