; RUN: not FileCheck -check-prefix=X1 -input-file %s %s
; RUN: not FileCheck -check-prefix=X2 -input-file %s %s
; RUN: not FileCheck -check-prefix=X3 -input-file %s %s
; RUN: not FileCheck -check-prefix=X4 -input-file %s %s
; RUN: not FileCheck -check-prefix=X5 -input-file %s %s
; RUN: not FileCheck -check-prefix=X6 -input-file %s %s

__x1
add r10, r1, r2
add r11, r3, r4
mul r5, r10, r12
__x1

; X1: __x1
; X1-DAG: add [[REG1:r[0-9]+]], r1, r2
; X1-DAG: add [[REG2:r[0-9]+]], r3, r4
; X1: mul r5, [[REG1]], [[REG2]]
; X1: __x1

__x2
mul r11, r3, r4
mul r10, r1, r2
add r5, r11, r11
__x2

; X2: __x2
; X2-DAG: mul [[REG1:r[0-9]+]], r1, r2
; X2-DAG: mul [[REG2:r[0-9]+]], r3, r4
; X2: add r5, [[REG1]], [[REG2]]
; X2: __x2

__x3
add r11, r3, r4
add r12, r1, r2
mul r5, r10, r11
__x3

; X3: __x3
; X3-DAG: add [[REG1:r[0-9]+]], r1, r2
; X3-DAG: add [[REG2:r[0-9]+]], r3, r4
; X3-DAG: mul r5, [[REG1]], [[REG2]]
; X3: __x3

__x4
add r11, r3, r4
add r12, r1, r2
not
mul r5, r12, r11
__x4

; X4: __x4
; X4-DAG: add [[REG1:r[0-9]+]], r1, r2
; X4-DAG: add [[REG2:r[0-9]+]], r3, r4
; X4-NOT: not
; X4-DAG: mul r5, [[REG1]], [[REG2]]
; X4: __x4

__x5
mul r5, r12, r11
add r11, r3, r4
add r12, r1, r2
not
__x5

; X5: __x5
; X5-DAG: add [[REG1:r[0-9]+]], r1, r2
; X5-DAG: add [[REG2:r[0-9]+]], r3, r4
; X5-NOT: not
; X5-DAG: mul r5, [[REG1]], [[REG2]]
; X5: __x5

__x6
add r11, r3, r4
mul r6, r12, r11
add r12, r1, r2
mul r5, r12, r11
__x6

; X6: __x6
; X6-DAG: add [[REG1:r[0-9]+]], r1, r2
; X6-DAG: add [[REG2:r[0-9]+]], r3, r4
; X6-NOT: not
; X6-DAG: mul r5, [[REG1]], [[REG2]]
; X6-DAG: mul r6, [[REG1]], [[REG2]]
; X6: __x6