Skip to content

Commit 7ad45f1

Browse files
committed
Change repeat element check into a match
1 parent aec5156 commit 7ad45f1

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

compiler/rustc_codegen_ssa/src/mir/rvalue.rs

+18-15
Original file line numberDiff line numberDiff line change
@@ -93,23 +93,26 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
9393
return;
9494
}
9595

96-
if let OperandValue::Immediate(v) = cg_elem.val {
97-
let start = dest.val.llval;
98-
let size = bx.const_usize(dest.layout.size.bytes());
99-
100-
// Use llvm.memset.p0i8.* to initialize all zero arrays
101-
if bx.cx().const_to_opt_u128(v, false) == Some(0) {
102-
let fill = bx.cx().const_u8(0);
103-
bx.memset(start, fill, size, dest.val.align, MemFlags::empty());
104-
return;
105-
}
96+
match cg_elem.val {
97+
OperandValue::Immediate(v) => {
98+
let start = dest.val.llval;
99+
let size = bx.const_usize(dest.layout.size.bytes());
100+
101+
// Use llvm.memset.p0i8.* to initialize all zero arrays
102+
if bx.cx().const_to_opt_u128(v, false) == Some(0) {
103+
let fill = bx.cx().const_u8(0);
104+
bx.memset(start, fill, size, dest.val.align, MemFlags::empty());
105+
return;
106+
}
106107

107-
// Use llvm.memset.p0i8.* to initialize byte arrays
108-
let v = bx.from_immediate(v);
109-
if bx.cx().val_ty(v) == bx.cx().type_i8() {
110-
bx.memset(start, v, size, dest.val.align, MemFlags::empty());
111-
return;
108+
// Use llvm.memset.p0i8.* to initialize byte arrays
109+
let v = bx.from_immediate(v);
110+
if bx.cx().val_ty(v) == bx.cx().type_i8() {
111+
bx.memset(start, v, size, dest.val.align, MemFlags::empty());
112+
return;
113+
}
112114
}
115+
_ => (),
113116
}
114117

115118
let count = self

0 commit comments

Comments
 (0)