1*8ebb3eacSBjorn Pettersson; RUN: opt < %s -S -passes=ipsccp | FileCheck %s 29477d39eSFlorian Hahn; PR5596 39477d39eSFlorian Hahn 49477d39eSFlorian Hahn; IPSCCP should propagate the 0 argument, eliminate the switch, and propagate 59477d39eSFlorian Hahn; the result. 69477d39eSFlorian Hahn 79477d39eSFlorian Hahn; CHECK: define i32 @main() #0 { 89477d39eSFlorian Hahn; CHECK-NEXT: entry: 99477d39eSFlorian Hahn; CHECK-NEXT: %call2 = tail call i32 @wwrite(i64 0) [[NUW:#[0-9]+]] 109477d39eSFlorian Hahn; CHECK-NEXT: ret i32 123 119477d39eSFlorian Hahn 129477d39eSFlorian Hahndefine i32 @main() noreturn nounwind { 139477d39eSFlorian Hahnentry: 149477d39eSFlorian Hahn %call2 = tail call i32 @wwrite(i64 0) nounwind 159477d39eSFlorian Hahn ret i32 %call2 169477d39eSFlorian Hahn} 179477d39eSFlorian Hahn 189477d39eSFlorian Hahndefine internal i32 @wwrite(i64 %i) nounwind { 199477d39eSFlorian Hahnentry: 209477d39eSFlorian Hahn switch i64 %i, label %sw.default [ 219477d39eSFlorian Hahn i64 3, label %return 229477d39eSFlorian Hahn i64 10, label %return 239477d39eSFlorian Hahn ] 249477d39eSFlorian Hahn 259477d39eSFlorian Hahnsw.default: 269477d39eSFlorian Hahn ret i32 123 279477d39eSFlorian Hahn 289477d39eSFlorian Hahnreturn: 299477d39eSFlorian Hahn ret i32 0 309477d39eSFlorian Hahn} 31