Compiler projects using llvm
; RUN: FileCheck -check-prefix=A -check-prefix=B -input-file %s %s

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

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

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

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

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

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