@@ -541,6 +541,8 @@ export namespace BuiltinNames {
541541 export const i16x8_extmul_low_i8x16_u = "~lib/builtins/i16x8.extmul_low_i8x16_u" ;
542542 export const i16x8_extmul_high_i8x16_s = "~lib/builtins/i16x8.extmul_high_i8x16_s" ;
543543 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" ;
544546
545547 export const i32x4_splat = "~lib/builtins/i32x4.splat" ;
546548 export const i32x4_extract_lane = "~lib/builtins/i32x4.extract_lane" ;
@@ -584,6 +586,8 @@ export namespace BuiltinNames {
584586 export const i32x4_extmul_low_i16x8_u = "~lib/builtins/i32x4.extmul_low_i16x8_u" ;
585587 export const i32x4_extmul_high_i16x8_s = "~lib/builtins/i32x4.extmul_high_i16x8_s" ;
586588 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" ;
587591
588592 export const i64x2_splat = "~lib/builtins/i64x2.splat" ;
589593 export const i64x2_extract_lane = "~lib/builtins/i64x2.extract_lane" ;
@@ -616,6 +620,8 @@ export namespace BuiltinNames {
616620 export const i64x2_extmul_low_i32x4_u = "~lib/builtins/i64x2.extmul_low_i32x4_u" ;
617621 export const i64x2_extmul_high_i32x4_s = "~lib/builtins/i64x2.extmul_high_i32x4_s" ;
618622 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" ;
619625
620626 export const f32x4_splat = "~lib/builtins/f32x4.splat" ;
621627 export const f32x4_extract_lane = "~lib/builtins/f32x4.extract_lane" ;
@@ -644,6 +650,8 @@ export namespace BuiltinNames {
644650 export const f32x4_convert_i32x4_s = "~lib/builtins/f32x4.convert_i32x4_s" ;
645651 export const f32x4_convert_i32x4_u = "~lib/builtins/f32x4.convert_i32x4_u" ;
646652 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" ;
647655
648656 export const f64x2_splat = "~lib/builtins/f64x2.splat" ;
649657 export const f64x2_extract_lane = "~lib/builtins/f64x2.extract_lane" ;
@@ -672,6 +680,8 @@ export namespace BuiltinNames {
672680 export const f64x2_convert_low_i32x4_s = "~lib/builtins/f64x2.convert_low_i32x4_s" ;
673681 export const f64x2_convert_low_i32x4_u = "~lib/builtins/f64x2.convert_low_i32x4_u" ;
674682 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" ;
675685
676686 export const i31_new = "~lib/builtins/i31.new" ;
677687 export const i31_get = "~lib/builtins/i31.get" ;
@@ -8337,7 +8347,6 @@ builtins.set(BuiltinNames.i8x16_shuffle, builtin_i8x16_shuffle);
83378347
83388348// i8x16.swizzle -> v128.swizzle
83398349function builtin_i8x16_swizzle ( ctx : BuiltinContext ) : ExpressionRef {
8340- checkTypeAbsent ( ctx ) ;
83418350 ctx . typeArguments = null ;
83428351 ctx . contextualType = Type . v128 ;
83438352 return builtin_v128_swizzle ( ctx ) ;
@@ -8758,6 +8767,23 @@ function builtin_i16x8_extmul_high_i8x16_u(ctx: BuiltinContext): ExpressionRef {
87588767}
87598768builtins . set ( BuiltinNames . i16x8_extmul_high_i8x16_u , builtin_i16x8_extmul_high_i8x16_u ) ;
87608769
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+
87618787// i32x4.splat -> v128.splat<i32>
87628788function builtin_i32x4_splat ( ctx : BuiltinContext ) : ExpressionRef {
87638789 checkTypeAbsent ( ctx ) ;
@@ -9136,6 +9162,23 @@ function builtin_i32x4_extmul_high_i16x8_u(ctx: BuiltinContext): ExpressionRef {
91369162}
91379163builtins . set ( BuiltinNames . i32x4_extmul_high_i16x8_u , builtin_i32x4_extmul_high_i16x8_u ) ;
91389164
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+
91399182// i64x2.splat -> v128.splat<i64>
91409183function builtin_i64x2_splat ( ctx : BuiltinContext ) : ExpressionRef {
91419184 checkTypeAbsent ( ctx ) ;
@@ -9379,6 +9422,23 @@ function builtin_i64x2_extmul_high_i32x4_u(ctx: BuiltinContext): ExpressionRef {
93799422}
93809423builtins . set ( BuiltinNames . i64x2_extmul_high_i32x4_u , builtin_i64x2_extmul_high_i32x4_u ) ;
93819424
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+
93829442// f32x4.splat -> v128.splat<f32>
93839443function builtin_f32x4_splat ( ctx : BuiltinContext ) : ExpressionRef {
93849444 checkTypeAbsent ( ctx ) ;
@@ -9622,6 +9682,23 @@ function builtin_f32x4_demote_f64x2_zero(ctx: BuiltinContext): ExpressionRef {
96229682}
96239683builtins . set ( BuiltinNames . f32x4_demote_f64x2_zero , builtin_f32x4_demote_f64x2_zero ) ;
96249684
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+
96259702// f64x2.splat -> v128.splat<f64>
96269703function builtin_f64x2_splat ( ctx : BuiltinContext ) : ExpressionRef {
96279704 checkTypeAbsent ( ctx ) ;
@@ -9865,6 +9942,23 @@ function builtin_f64x4_promote_low_f32x4(ctx: BuiltinContext): ExpressionRef {
98659942}
98669943builtins . set ( BuiltinNames . f64x2_promote_low_f32x4 , builtin_f64x4_promote_low_f32x4 ) ;
98679944
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+
98689962// === Internal helpers =======================================================================
98699963
98709964/** Compiles the `visit_globals` function. */
0 commit comments