#### 7.2.2 Selecting targets to which a test applies

Several test directives include selectors to limit the targets for which a test is run or to declare that a test is expected to fail on particular targets.

A selector is:

- one or more target triplets, possibly including wildcard characters; use ‘`*-*-*`’ to match any target
- a single effective-target keyword (see Effective-Target Keywords)
- a logical expression

Depending on the context, the selector specifies whether a test is skipped and reported as unsupported or is expected to fail. A context that allows either ‘`target`’ or ‘`xfail`’ also allows ‘`{ target selector1 xfail selector2 }`’ to skip the test for targets that don’t match selector1 and the test to fail for targets that match selector2.

A selector expression appears within curly braces and uses a single logical operator: one of ‘`!`’, ‘`&&`’, or ‘`||`’. An operand is another selector expression, an effective-target keyword, a single target triplet, or a list of target triplets within quotes or curly braces. For example:

    { target { ! "hppa*-*-* ia64*-*-*" } }
    { target { powerpc*-*-* && lp64 } }
    { xfail { lp64 || vect_no_align } }