Skip to content

Commit

Permalink
Add some more overflow tests
Browse files Browse the repository at this point in the history
  • Loading branch information
elliottt committed Oct 17, 2022
1 parent 47118ea commit 29cb4bc
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 6 deletions.
45 changes: 44 additions & 1 deletion cranelift/filetests/filetests/runtests/br.clif
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,50 @@ block2:
; run: %brz_i8_overflow(98) == 1
; run: %brz_i8_overflow(97) == 1

function %brz_i16_overflow(i16) -> i8 {
block0(v0: i16):
v1 = iconst.i16 65535
v2 = iadd v0, v1
brz v2, block2
jump block1

block1:
v3 = iconst.i8 1
return v3

block2:
v4 = iconst.i8 0
return v4
}

; run: %brz_i16_overflow(0) == 1
; run: %brz_i16_overflow(1) == 0
; run: %brz_i16_overflow(2) == 1
; run: %brz_i16_overflow(98) == 1
; run: %brz_i16_overflow(97) == 1

function %brz_i32_overflow(i32) -> i8 {
block0(v0: i32):
v1 = iconst.i32 4294967295
v2 = iadd v0, v1
brz v2, block2
jump block1

block1:
v3 = iconst.i8 1
return v3

block2:
v4 = iconst.i8 0
return v4
}

; run: %brz_i32_overflow(0) == 1
; run: %brz_i32_overflow(1) == 0
; run: %brz_i32_overflow(2) == 1
; run: %brz_i32_overflow(98) == 1
; run: %brz_i32_overflow(97) == 1

function %brz_i32(i32) -> i8 {
block0(v0: i32):
brz v0, block1
Expand Down Expand Up @@ -94,7 +138,6 @@ block2:
; run: %brz_i16(1) == 0
; run: %brz_i16(-1) == 0


function %brz_i8(i8) -> i8 {
block0(v1: i8):
brz v1, block1
Expand Down
40 changes: 35 additions & 5 deletions cranelift/filetests/filetests/runtests/select.clif
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ block0(v0: f32, v1: f32):
; run: %select_uno_f32(0x0.0, NaN) == 1
; run: %select_uno_f32(-NaN, 0x42.42) == 1

function %select_overflow(i8) -> i8 {
function %select_overflow_i8(i8) -> i8 {
block0(v0: i8):
v1 = iconst.i8 255
v2 = iadd v0, v1
Expand All @@ -104,7 +104,37 @@ block0(v0: i8):
return v5
}

; run: %select_overflow(0) == 1
; run: %select_overflow(2) == 1
; run: %select_overflow(1) == 0
; run: %select_overflow(98) == 1
; run: %select_overflow_i8(0) == 1
; run: %select_overflow_i8(2) == 1
; run: %select_overflow_i8(1) == 0
; run: %select_overflow_i8(98) == 1

function %select_overflow_i16(i16) -> i8 {
block0(v0: i16):
v1 = iconst.i16 65535
v2 = iadd v0, v1
v3 = iconst.i8 1
v4 = iconst.i8 0
v5 = select v2, v3, v4
return v5
}

; run: %select_overflow_i16(0) == 1
; run: %select_overflow_i16(2) == 1
; run: %select_overflow_i16(1) == 0
; run: %select_overflow_i16(98) == 1

function %select_overflow_i32(i32) -> i8 {
block0(v0: i32):
v1 = iconst.i32 4294967295
v2 = iadd v0, v1
v3 = iconst.i8 1
v4 = iconst.i8 0
v5 = select v2, v3, v4
return v5
}

; run: %select_overflow_i32(0) == 1
; run: %select_overflow_i32(2) == 1
; run: %select_overflow_i32(1) == 0
; run: %select_overflow_i32(98) == 1

0 comments on commit 29cb4bc

Please sign in to comment.