authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-03-17 18:04:06-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-03-17 18:04:06-07:00
log4fa506063373b38bed842af53e6405dec7107534
tree045f08ea0530a9f1bdbecd7895d06469618a1a20
parentd7d2ccb7af7349617fa76eef3bdead7c259654a5

Sema: take advantage of checkIntOrVectorAllowComptime


1 files changed, 1 insertions(+), 17 deletions(-)

src/Sema.zig+1-17
......@@ -13489,23 +13489,7 @@ fn zirByteSwap(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai
1348913489 const operand_src: LazySrcLoc = .{ .node_offset_builtin_call_arg1 = inst_data.src_node };
1349013490 const operand = sema.resolveInst(inst_data.operand);
1349113491 const operand_ty = sema.typeOf(operand);
13492
13493 const scalar_ty = if (operand_ty.zigTypeTag() == .Vector)
13494 operand_ty.elemType2()
13495 else
13496 operand_ty;
13497
13498 switch (operand_ty.zigTypeTag()) {
13499 .Int, .ComptimeInt => {},
13500 .Vector => {
13501 switch (scalar_ty.zigTypeTag()) {
13502 .Int, .ComptimeInt => {},
13503 else => return sema.fail(block, ty_src, "expected vector of integer type, found vector of '{}'", .{scalar_ty}),
13504 }
13505 },
13506 else => return sema.fail(block, ty_src, "expected integer type or vector of integer type, found '{}'", .{operand_ty}),
13507 }
13508
13492 const scalar_ty = try sema.checkIntOrVectorAllowComptime(block, operand, operand_src);
1350913493 const target = sema.mod.getTarget();
1351013494 const bits = scalar_ty.intInfo(target).bits;
1351113495 if (bits % 8 != 0) {