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

The search range for the NOTs used to end at the start of the match range for
the first DAG in the following DAG group.  Now it ends at the start of the
match range for the entire following DAG group.

__NotSearchEnd
x0
x1

y1
foobar
y0

z2
foobar
z1
foobar
z0
__NotSearchEnd

; NotSearchEnd:     {{^}}__NotSearchEnd
; NotSearchEnd-DAG: {{^}}x0
; NotSearchEnd-DAG: {{^}}x1
; NotSearchEnd-NOT: {{^}}foobar
; NotSearchEnd-DAG: {{^}}y0
; NotSearchEnd-DAG: {{^}}y1
; NotSearchEnd-NOT: {{^}}foobar
; NotSearchEnd-DAG: {{^}}z0
; NotSearchEnd-DAG: {{^}}z1
; NotSearchEnd-DAG: {{^}}z2
; NotSearchEnd:     {{^}}__NotSearchEnd

;---------------------------------------------------------------------
; RUN: FileCheck -input-file %s %s -check-prefix=Dag2SearchStart

The start of the search range for the second or later DAG group used to be
different for its first DAG than its other DAGs.  For the first DAG, it was
the start of the permitted range for the preceding DAG group, and there was a
reordering complaint if the match range was in the first DAG group's match
range.  For the other DAGs, it was the end of the match range for the
preceding DAG group, so reordering detection wasn't possible.  Now, the
first DAG behaves like the others, and so reordering detection is no longer
implemented.  As a result, matches that used to produce the reordering
complaint are now skipped, permitting later matches to succeed.

__Dag2SearchStart
y0
y1
x0
y0
y1
x1

z1
z0
y1
z1
z0
y0

z0
z1
__Dag2SearchStart

; Dag2SearchStart:     {{^}}__Dag2SearchStart
; Dag2SearchStart-DAG: {{^}}x0
; Dag2SearchStart-DAG: {{^}}x1
; Dag2SearchStart-NOT: {{^}}foobar
; Dag2SearchStart-DAG: {{^}}y0
; Dag2SearchStart-DAG: {{^}}y1
; Dag2SearchStart-NOT: {{^}}foobar
; Dag2SearchStart-DAG: {{^}}z0
; Dag2SearchStart-DAG: {{^}}z1
; Dag2SearchStart:     {{^}}__Dag2SearchStart