@@ -438,9 +438,9 @@ define void @foo(ptr %arg) {
438438; SCCP-NEXT: [[TMP:%.*]] = zext i8 undef to i32
439439; SCCP-NEXT: [[TMP2:%.*]] = load i64, ptr [[ARG:%.*]], align 8
440440; SCCP-NEXT: switch i32 [[TMP]], label [[BB20:%.*]] [
441- ; SCCP-NEXT: i32 1, label [[BB3:%.*]]
442- ; SCCP-NEXT: i32 2, label [[BB4:%.*]]
443- ; SCCP-NEXT: i32 4, label [[BB19:%.*]]
441+ ; SCCP-NEXT: i32 1, label [[BB3:%.*]]
442+ ; SCCP-NEXT: i32 2, label [[BB4:%.*]]
443+ ; SCCP-NEXT: i32 4, label [[BB19:%.*]]
444444; SCCP-NEXT: ]
445445; SCCP: bb3:
446446; SCCP-NEXT: unreachable
@@ -449,7 +449,7 @@ define void @foo(ptr %arg) {
449449; SCCP-NEXT: [[TMP6:%.*]] = and i64 [[TMP5]], 3
450450; SCCP-NEXT: [[TMP7:%.*]] = sub nuw nsw i64 3, [[TMP6]]
451451; SCCP-NEXT: [[TMP8:%.*]] = shl nuw nsw i64 [[TMP7]], 1
452- ; SCCP-NEXT: [[TMP9:%.*]] = trunc i64 [[TMP8]] to i32
452+ ; SCCP-NEXT: [[TMP9:%.*]] = trunc nuw nsw i64 [[TMP8]] to i32
453453; SCCP-NEXT: [[TMP10:%.*]] = zext nneg i32 [[TMP9]] to i64
454454; SCCP-NEXT: br label [[BB11:%.*]]
455455; SCCP: bb11:
@@ -475,9 +475,9 @@ define void @foo(ptr %arg) {
475475; IPSCCP-NEXT: [[TMP:%.*]] = zext i8 undef to i32
476476; IPSCCP-NEXT: [[TMP2:%.*]] = load i64, ptr [[ARG:%.*]], align 8
477477; IPSCCP-NEXT: switch i32 [[TMP]], label [[BB20:%.*]] [
478- ; IPSCCP-NEXT: i32 1, label [[BB3:%.*]]
479- ; IPSCCP-NEXT: i32 2, label [[BB4:%.*]]
480- ; IPSCCP-NEXT: i32 4, label [[BB19:%.*]]
478+ ; IPSCCP-NEXT: i32 1, label [[BB3:%.*]]
479+ ; IPSCCP-NEXT: i32 2, label [[BB4:%.*]]
480+ ; IPSCCP-NEXT: i32 4, label [[BB19:%.*]]
481481; IPSCCP-NEXT: ]
482482; IPSCCP: bb3:
483483; IPSCCP-NEXT: unreachable
@@ -486,7 +486,7 @@ define void @foo(ptr %arg) {
486486; IPSCCP-NEXT: [[TMP6:%.*]] = and i64 [[TMP5]], 3
487487; IPSCCP-NEXT: [[TMP7:%.*]] = sub nuw nsw i64 3, [[TMP6]]
488488; IPSCCP-NEXT: [[TMP8:%.*]] = shl nuw nsw i64 [[TMP7]], 1
489- ; IPSCCP-NEXT: [[TMP9:%.*]] = trunc i64 [[TMP8]] to i32
489+ ; IPSCCP-NEXT: [[TMP9:%.*]] = trunc nuw nsw i64 [[TMP8]] to i32
490490; IPSCCP-NEXT: [[TMP10:%.*]] = zext nneg i32 [[TMP9]] to i64
491491; IPSCCP-NEXT: br label [[BB11:%.*]]
492492; IPSCCP: bb11:
@@ -615,7 +615,7 @@ define ptr @wobble(ptr %arg, i32 %arg1) align 2 {
615615; SCCP-NEXT: [[TMP22:%.*]] = icmp eq i32 [[TMP21]], 0
616616; SCCP-NEXT: br i1 [[TMP22]], label [[BB23:%.*]], label [[BB25:%.*]]
617617; SCCP: bb23:
618- ; SCCP-NEXT: [[TMP24:%.*]] = trunc i32 [[TMP3]] to i16
618+ ; SCCP-NEXT: [[TMP24:%.*]] = trunc nuw i32 [[TMP3]] to i16
619619; SCCP-NEXT: store i16 [[TMP24]], ptr [[TMP17]], align 2
620620; SCCP-NEXT: br label [[BB31]]
621621; SCCP: bb25:
@@ -639,7 +639,7 @@ define ptr @wobble(ptr %arg, i32 %arg1) align 2 {
639639; SCCP-NEXT: br i1 [[C_2]], label [[BB39:%.*]], label [[BB58:%.*]]
640640; SCCP: bb39:
641641; SCCP-NEXT: [[TMP40:%.*]] = add nsw i32 [[TMP11]], -1
642- ; SCCP-NEXT: [[TMP41:%.*]] = trunc i32 [[TMP3]] to i16
642+ ; SCCP-NEXT: [[TMP41:%.*]] = trunc nuw i32 [[TMP3]] to i16
643643; SCCP-NEXT: store i16 [[TMP41]], ptr @global.11, align 1
644644; SCCP-NEXT: [[TMP43:%.*]] = add i32 [[TMP7]], [[TMP40]]
645645; SCCP-NEXT: [[TMP44:%.*]] = mul i32 [[TMP43]], 4
@@ -697,7 +697,7 @@ define ptr @wobble(ptr %arg, i32 %arg1) align 2 {
697697; IPSCCP-NEXT: [[TMP22:%.*]] = icmp eq i32 [[TMP21]], 0
698698; IPSCCP-NEXT: br i1 [[TMP22]], label [[BB23:%.*]], label [[BB25:%.*]]
699699; IPSCCP: bb23:
700- ; IPSCCP-NEXT: [[TMP24:%.*]] = trunc i32 [[TMP3]] to i16
700+ ; IPSCCP-NEXT: [[TMP24:%.*]] = trunc nuw i32 [[TMP3]] to i16
701701; IPSCCP-NEXT: store i16 [[TMP24]], ptr [[TMP17]], align 2
702702; IPSCCP-NEXT: br label [[BB31]]
703703; IPSCCP: bb25:
@@ -720,7 +720,7 @@ define ptr @wobble(ptr %arg, i32 %arg1) align 2 {
720720; IPSCCP-NEXT: [[C_2:%.*]] = icmp eq i32 [[TMP11]], 8
721721; IPSCCP-NEXT: br i1 [[C_2]], label [[BB39:%.*]], label [[BB58:%.*]]
722722; IPSCCP: bb39:
723- ; IPSCCP-NEXT: [[TMP41:%.*]] = trunc i32 [[TMP3]] to i16
723+ ; IPSCCP-NEXT: [[TMP41:%.*]] = trunc nuw i32 [[TMP3]] to i16
724724; IPSCCP-NEXT: store i16 [[TMP41]], ptr @global.11, align 1
725725; IPSCCP-NEXT: [[TMP43:%.*]] = add i32 [[TMP7]], 7
726726; IPSCCP-NEXT: [[TMP44:%.*]] = mul i32 [[TMP43]], 4
0 commit comments