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

define i32 @test1(i32 %x, i32 %y) {
; CHECK-LABEL: define i32 @test1
; CHECK-SAME: (i32 [[X:%.*]], i32 [[Y:%.*]]) {
; CHECK-NEXT:    [[ADD1:%.*]] = add i32 [[X]], [[Y]]
; CHECK-NEXT:    [[FOO:%.*]] = add i32 [[ADD1]], [[ADD1]]
; CHECK-NEXT:    ret i32 [[FOO]]
;

  %add1 = add nsw i32 %x, %y
  %add2 = add     i32 %x, %y
  %foo = add i32 %add1, %add2
  ret i32 %foo
}

define i32 @test2(i32 %x, i32 %y) {
; CHECK-LABEL: define i32 @test2
; CHECK-SAME: (i32 [[X:%.*]], i32 [[Y:%.*]]) {
; CHECK-NEXT:    [[ADD1:%.*]] = add i32 [[X]], [[Y]]
; CHECK-NEXT:    [[FOO:%.*]] = add i32 [[ADD1]], [[ADD1]]
; CHECK-NEXT:    ret i32 [[FOO]]
;

  %add1 = add nuw i32 %x, %y
  %add2 = add     i32 %x, %y
  %foo = add i32 %add1, %add2
  ret i32 %foo
}

define i32 @test3(i32 %x, i32 %y) {
; CHECK-LABEL: define i32 @test3
; CHECK-SAME: (i32 [[X:%.*]], i32 [[Y:%.*]]) {
; CHECK-NEXT:    [[ADD1:%.*]] = add i32 [[X]], [[Y]]
; CHECK-NEXT:    [[FOO:%.*]] = add i32 [[ADD1]], [[ADD1]]
; CHECK-NEXT:    ret i32 [[FOO]]
;

  %add1 = add nuw nsw i32 %x, %y
  %add2 = add     i32 %x, %y
  %foo = add i32 %add1, %add2
  ret i32 %foo
}

define i32 @test4(i32 %x, i32 %y) {
; CHECK-LABEL: define i32 @test4
; CHECK-SAME: (i32 [[X:%.*]], i32 [[Y:%.*]]) {
; CHECK-NEXT:    [[ADD1:%.*]] = add nsw i32 [[X]], [[Y]]
; CHECK-NEXT:    [[FOO:%.*]] = add i32 [[ADD1]], [[ADD1]]
; CHECK-NEXT:    ret i32 [[FOO]]
;

  %add1 = add nsw i32 %x, %y
  %add2 = add nsw i32 %x, %y
  %foo = add i32 %add1, %add2
  ret i32 %foo
}

define i32 @test5(i32 %x, i32 %y) {
; CHECK-LABEL: define i32 @test5
; CHECK-SAME: (i32 [[X:%.*]], i32 [[Y:%.*]]) {
; CHECK-NEXT:    [[ADD1:%.*]] = add i32 [[X]], [[Y]]
; CHECK-NEXT:    [[FOO:%.*]] = add i32 [[ADD1]], [[ADD1]]
; CHECK-NEXT:    ret i32 [[FOO]]
;

  %add1 = add nuw i32 %x, %y
  %add2 = add nsw i32 %x, %y
  %foo = add i32 %add1, %add2
  ret i32 %foo
}

define i32 @test6(i32 %x, i32 %y) {
; CHECK-LABEL: define i32 @test6
; CHECK-SAME: (i32 [[X:%.*]], i32 [[Y:%.*]]) {
; CHECK-NEXT:    [[ADD1:%.*]] = add nsw i32 [[X]], [[Y]]
; CHECK-NEXT:    [[FOO:%.*]] = add i32 [[ADD1]], [[ADD1]]
; CHECK-NEXT:    ret i32 [[FOO]]
;

  %add1 = add nuw nsw i32 %x, %y
  %add2 = add nsw i32 %x, %y
  %foo = add i32 %add1, %add2
  ret i32 %foo
}

define i32 @test7(i32 %x, i32 %y) {
; CHECK-LABEL: define i32 @test7
; CHECK-SAME: (i32 [[X:%.*]], i32 [[Y:%.*]]) {
; CHECK-NEXT:    [[ADD1:%.*]] = add i32 [[X]], [[Y]]
; CHECK-NEXT:    [[FOO:%.*]] = add i32 [[ADD1]], [[ADD1]]
; CHECK-NEXT:    ret i32 [[FOO]]
;

  %add1 = add i32 %x, %y, !what_is_this !{}
  %add2 = add i32 %x, %y
  %foo = add i32 %add1, %add2
  ret i32 %foo
}

declare void @mumble(i2, i2)

define void @test8(i2 %x) {
; CHECK-LABEL: define void @test8
; CHECK-SAME: (i2 [[X:%.*]]) {
; CHECK-NEXT:    [[ASHR0:%.*]] = ashr i2 [[X]], 1
; CHECK-NEXT:    call void @mumble(i2 [[ASHR0]], i2 [[ASHR0]])
; CHECK-NEXT:    ret void
;

  %ashr0 = ashr exact i2 %x, 1
  %ashr1 = ashr i2 %x, 1
  call void @mumble(i2 %ashr0, i2 %ashr1)
  ret void
}
