delay

A delay between dependent SALU/VALU instructions. This operand may specify a delay for 2 instructions: the one after the current s_delay_alu instruction and for the second instruction indicated by SKIP.

The bits of this operand have the following meaning:

Bits

Description

Value Range

3:0

ID0: indicates a delay for the first instruction.

0..11

6:4

SKIP: indicates the position of the second instruction.

0..5

10:7

ID1: indicates a delay for the second instruction.

0..11

This operand may be specified as one of the following:

  • An integer_number or an absolute_expression. The value must be in the range from 0 to 0xFFFF.

  • A combination of instid0, instskip, instid1 values which are described below.

    Syntax

    Description

    Default Value

    instid0(<ID name>)

    A symbolic ID0 value.

    instid0(NO_DEP)

    instskip(<SKIP name>)

    A symbolic SKIP value.

    instskip(SAME)

    instid1(<ID name>)

    A symbolic ID1 value.

    instid1(NO_DEP)

These values may be specified in any order. When more than one value is specified, the values must be separated from each other by a ‘|’.

Valid ID names are defined below.

Name

Description

NO_DEP

No dependency on any prior instruction. This is the default value.

VALU_DEP_1

Dependency on a previous VALU instruction, 1 opcode back.

VALU_DEP_2

Dependency on a previous VALU instruction, 2 opcodes back.

VALU_DEP_3

Dependency on a previous VALU instruction, 3 opcodes back.

VALU_DEP_4

Dependency on a previous VALU instruction, 4 opcodes back.

TRANS32_DEP_1

Dependency on a previous TRANS32 instruction, 1 opcode back.

TRANS32_DEP_2

Dependency on a previous TRANS32 instruction, 2 opcodes back.

TRANS32_DEP_3

Dependency on a previous TRANS32 instruction, 3 opcodes back.

FMA_ACCUM_CYCLE_1

Single cycle penalty for FMA accumulation.

SALU_CYCLE_1

1 cycle penalty for a prior SALU instruction.

SALU_CYCLE_2

2 cycle penalty for a prior SALU instruction.

SALU_CYCLE_3

3 cycle penalty for a prior SALU instruction.

Legal SKIP names are described in the following table.

Name

Description

SAME

Apply second dependency to the same instruction. This is the default value.

NEXT

Apply second dependency to the next instruction.

SKIP_1

Skip 1 instruction then apply dependency.

SKIP_2

Skip 2 instructions then apply dependency.

SKIP_3

Skip 3 instructions then apply dependency.

SKIP_4

Skip 4 instructions then apply dependency.

Examples:

s_delay_alu instid0(VALU_DEP_1)
s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)