Skip to content

Conversation

EwanC
Copy link
Collaborator

@EwanC EwanC commented Jul 11, 2023

Address Steffen's spec feedback and move the info::device::graph_support_level enum up a namespace level to info::graph_support_level.

Using info::device::graph_support to return a info::graph_support_level is analogous with the info::device::device_type query in the main spec which returns a info::device_type, or info::device::local_mem_type which returns a info::local_mem_type.

Address [Steffen's
feedback](intel#5626 (comment))
and move the `info::device::graph_support_level` to enum up a namespace
level to `info::graph_support_level`.

Using `info::device::graph_support` to return a `info::graph_support_level` is
analogous with the `info::device::device_type` query in the main
spec which returns a `info::device_type`. Or `info::device::local_mem_type`
which returns a `info::local_mem_type`.
@EwanC EwanC added the Graph Specification Extension Specification related label Jul 11, 2023
Copy link
Owner

@reble reble left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

EwanC pushed a commit that referenced this pull request Jul 11, 2023
Matching implementation change to specification PR
#255
@EwanC EwanC merged commit 68c5b42 into sycl-graph-update Jul 11, 2023
EwanC pushed a commit that referenced this pull request Jul 12, 2023
Matching implementation change to specification PR
#255
EwanC pushed a commit that referenced this pull request Jul 12, 2023
Matching implementation change to specification PR
#255
Bensuo added a commit that referenced this pull request Jul 14, 2023
Matching implementation change to specification PR
#255
@Bensuo Bensuo deleted the ewan/graph_support_level branch August 7, 2023 16:29
EwanC pushed a commit that referenced this pull request Aug 9, 2023
We removed the `device` namespace from `graph_support_level`
in #255

However, I forgot to update this table entry.
EwanC pushed a commit that referenced this pull request Aug 10, 2023
We removed the `device` namespace from `graph_support_level`
in #255

However, I forgot to update this table entry.
reble pushed a commit that referenced this pull request Sep 29, 2025
M68k's SETCC instruction (`scc`) distinctly fills the destination byte
with all 1s. If boolean contents are set to `ZeroOrOneBooleanContent`,
LLVM can mistakenly think the destination holds `0x01` instead of `0xff`
and emit broken code as a result. This change corrects the boolean
content type to `ZeroOrNegativeOneBooleanContent`.

For example, this IR:

```llvm
define dso_local signext range(i8 0, 2) i8 @testBool(i32 noundef %a) local_unnamed_addr #0 {
entry:
  %cmp = icmp eq i32 %a, 4660
  %. = zext i1 %cmp to i8
  ret i8 %.
}
```

would previously build as:

```asm
testBool:                               ; @testBool
	cmpi.l	intel#4660, (4,%sp)
	seq	%d0
	and.l	#255, %d0
	rts
```

Notice the `zext` is erroneously not clearing the low bits, and thus the
register returns with 255 instead of 1. This patch fixes the issue:

```asm
testBool:                               ; @testBool
	cmpi.l	intel#4660, (4,%sp)
	seq	%d0
	and.l	#1, %d0
	rts
```

Most of the tests containing `scc` suffered from the same value error as
described above, so those tests have been updated to match the new
output (which also logically corrects them).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Graph Specification Extension Specification related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants