26 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s3;4; This test case is reduced from RangeConstraintManager.cpp in a ASan build.5; It crashes reduceLoadWidth in DAGCombiner.cpp. Preservation of range6; metadata must ensure that ConstantRange truncation is strictly smaller.7 8define i8 @narrow_load_metadata(ptr %valptr) {9; CHECK-LABEL: narrow_load_metadata:10; CHECK: # %bb.0: # %entry11; CHECK-NEXT: movzbl (%rdi), %eax12; CHECK-NEXT: movb %al, 4(%rdi)13; CHECK-NEXT: movl $0, (%rdi)14; CHECK-NEXT: retq15entry:16 %val = load i8, ptr %valptr, align 4, !range !0, !noundef !117 %retval.sroa.1.0.insert.ext.i = zext i8 %val to i6418 %retval.sroa.1.0.insert.shift.i = shl i64 %retval.sroa.1.0.insert.ext.i, 3219 %coerce.val.ii = trunc i64 %retval.sroa.1.0.insert.shift.i to i4020 store i40 %coerce.val.ii, ptr %valptr, align 421 ret i8 %val22}23 24!0 = !{i8 0, i8 2}25!1 = !{}26