  Finding bugs is key to the correctness of compilers in wide use today. If the
behaviour of a compiled program, as allowed by its architecture memory model,
is not a behaviour of the source program under its source model, then there is
a bug. This holds for all programs, but we focus on concurrency bugs that occur
only with two or more threads of execution. We focus on testing techniques that
detect such bugs in C/C++ compilers.
  We seek a testing technique that automatically covers concurrency bugs up to
fixed bounds on program sizes and that scales to find bugs in compiled programs
with many lines of code. Otherwise, a testing technique can miss bugs.
Unfortunately, the state-of-the-art techniques are yet to satisfy all of these
properties.
  We present the T\'el\'echat compiler testing tool for concurrent programs.
T\'el\'echat compiles a concurrent C/C++ program and compares source and
compiled program behaviours using source and architecture memory models. We
make three claims: T\'el\'echat improves the state-of-the-art at finding bugs
in code generation for multi-threaded execution, it is the first public
description of a compiler testing tool for concurrency that is deployed in
industry, and it is the first tool that takes a significant step towards the
desired properties. We provide experimental evidence suggesting T\'el\'echat
finds bugs missed by other state-of-the-art techniques, case studies indicating
that T\'el\'echat satisfies the properties, and reports of our experience
deploying T\'el\'echat in industry regression testing.
