llvm/llvm/test/Transforms/NewGVN/pr43441.ll

; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
; RUN: opt -passes=newgvn -S < %s | FileCheck %s

target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

define dso_local void @print_long_format() #0 {
; CHECK-LABEL: define dso_local void @print_long_format(
; CHECK-SAME: ) #[[ATTR0:[0-9]+]] {
; CHECK-NEXT:  entry:
; CHECK-NEXT:    switch i32 undef, label [[SW_DEFAULT:%.*]] [
; CHECK-NEXT:      i32 1, label [[SW_BB:%.*]]
; CHECK-NEXT:      i32 0, label [[SW_BB19:%.*]]
; CHECK-NEXT:      i32 2, label [[SW_BB23:%.*]]
; CHECK-NEXT:    ]
; CHECK:       sw.bb:
; CHECK-NEXT:    unreachable
; CHECK:       sw.bb19:
; CHECK-NEXT:    br i1 undef, label [[IF_THEN37:%.*]], label [[IF_END50:%.*]]
; CHECK:       sw.bb23:
; CHECK-NEXT:    unreachable
; CHECK:       sw.default:
; CHECK-NEXT:    unreachable
; CHECK:       if.then37:
; CHECK-NEXT:    unreachable
; CHECK:       if.end50:
; CHECK-NEXT:    [[CALL180:%.*]] = call i32 @timespec_cmp() #[[ATTR2:[0-9]+]]
; CHECK-NEXT:    ret void
;
entry:
  switch i32 undef, label %sw.default [
  i32 1, label %sw.bb
  i32 0, label %sw.bb19
  i32 2, label %sw.bb23
  ]

sw.bb:                                            ; preds = %entry
  unreachable

sw.bb19:                                          ; preds = %entry
  br i1 undef, label %if.then37, label %if.end50

sw.bb23:                                          ; preds = %entry
  unreachable

sw.default:                                       ; preds = %entry
  unreachable

if.then37:                                        ; preds = %sw.bb19
  unreachable

if.end50:                                         ; preds = %sw.bb19
  %call180 = call i32 @timespec_cmp() #2
  %cmp181 = icmp slt i32 %call180, 0
  ret void
}

; Function Attrs: writeonly
declare dso_local i32 @timespec_cmp() #1

attributes #0 = { "use-soft-float"="false" }
attributes #1 = { writeonly }
attributes #2 = { nounwind readonly }