| ... | @@ -4599,8 +4599,11 @@ static IrInstSrc *astgen_builtin_fn_call(Stage1AstGen *ag, Scope *scope, AstNode | ... | @@ -4599,8 +4599,11 @@ static IrInstSrc *astgen_builtin_fn_call(Stage1AstGen *ag, Scope *scope, AstNode |
| 4599 | } | 4599 | } |
| 4600 | case BuiltinFnIdShuffle: | 4600 | case BuiltinFnIdShuffle: |
| 4601 | { | 4601 | { |
| | 4602 | // Used for the type expr and the mask expr |
| | 4603 | Scope *comptime_scope = create_comptime_scope(ag->codegen, node, scope); |
| | 4604 | |
| 4602 | AstNode *arg0_node = node->data.fn_call_expr.params.at(0); | 4605 | AstNode *arg0_node = node->data.fn_call_expr.params.at(0); |
| 4603 | IrInstSrc *arg0_value = astgen_node(ag, arg0_node, scope); | 4606 | IrInstSrc *arg0_value = astgen_node(ag, arg0_node, comptime_scope); |
| 4604 | if (arg0_value == ag->codegen->invalid_inst_src) | 4607 | if (arg0_value == ag->codegen->invalid_inst_src) |
| 4605 | return arg0_value; | 4608 | return arg0_value; |
| 4606 | | 4609 | |
| ... | @@ -4615,7 +4618,7 @@ static IrInstSrc *astgen_builtin_fn_call(Stage1AstGen *ag, Scope *scope, AstNode | ... | @@ -4615,7 +4618,7 @@ static IrInstSrc *astgen_builtin_fn_call(Stage1AstGen *ag, Scope *scope, AstNode |
| 4615 | return arg2_value; | 4618 | return arg2_value; |
| 4616 | | 4619 | |
| 4617 | AstNode *arg3_node = node->data.fn_call_expr.params.at(3); | 4620 | AstNode *arg3_node = node->data.fn_call_expr.params.at(3); |
| 4618 | IrInstSrc *arg3_value = astgen_node(ag, arg3_node, scope); | 4621 | IrInstSrc *arg3_value = astgen_node(ag, arg3_node, comptime_scope); |
| 4619 | if (arg3_value == ag->codegen->invalid_inst_src) | 4622 | if (arg3_value == ag->codegen->invalid_inst_src) |
| 4620 | return arg3_value; | 4623 | return arg3_value; |
| 4621 | | 4624 | |