; RUN: llhd-opt %s -p cf
func @unary_i8 () void {
entry:
%a = const i8 1
%neg = neg i8 %a
; CHECK: %neg = const i8 255
ret
}
func @binary_i8 () void {
entry:
%a = const i8 7
%an = const i8 -7
%b = const i8 2
%bn = const i8 -2
%c = const i8 9
%cn = const i8 -9
%d = const i8 5
%dn = const i8 -5
%add1 = add i8 %a, %b
%add2 = add i8 %an, %b
%add3 = add i8 %a, %bn
%add4 = add i8 %an, %bn
; CHECK: %add1 = const i8 9
; CHECK: %add2 = const i8 251
; CHECK: %add3 = const i8 5
; CHECK: %add4 = const i8 247
%sub1 = sub i8 %a, %b
%sub2 = sub i8 %an, %b
%sub3 = sub i8 %a, %bn
%sub4 = sub i8 %an, %bn
; CHECK: %sub1 = const i8 5
; CHECK: %sub2 = const i8 247
; CHECK: %sub3 = const i8 9
; CHECK: %sub4 = const i8 251
%umul1 = umul i8 %a, %b
%umul2 = umul i8 %an, %b
%umul3 = umul i8 %a, %bn
%umul4 = umul i8 %an, %bn
; CHECK: %umul1 = const i8 14
; CHECK: %umul2 = const i8 242
; CHECK: %umul3 = const i8 242
; CHECK: %umul4 = const i8 14
%smul1 = smul i8 %a, %b
%smul2 = smul i8 %an, %b
%smul3 = smul i8 %a, %bn
%smul4 = smul i8 %an, %bn
; CHECK: %smul1 = const i8 14
; CHECK: %smul2 = const i8 242
; CHECK: %smul3 = const i8 242
; CHECK: %smul4 = const i8 14
%udiv1 = udiv i8 %a, %b
%udiv2 = udiv i8 %an, %b
%udiv3 = udiv i8 %a, %bn
%udiv4 = udiv i8 %an, %bn
; CHECK: %udiv1 = const i8 3
; CHECK: %udiv2 = const i8 124
; CHECK: %udiv3 = const i8 0
; CHECK: %udiv4 = const i8 0
%sdiv1 = sdiv i8 %a, %b
%sdiv2 = sdiv i8 %an, %b
%sdiv3 = sdiv i8 %a, %bn
%sdiv4 = sdiv i8 %an, %bn
; CHECK: %sdiv1 = const i8 3
; CHECK: %sdiv2 = const i8 253
; CHECK: %sdiv3 = const i8 253
; CHECK: %sdiv4 = const i8 3
%umod1 = umod i8 %c, %d
%umod2 = umod i8 %cn, %d
%umod3 = umod i8 %c, %dn
%umod4 = umod i8 %cn, %dn
; CHECK: %umod1 = const i8 4
; CHECK: %umod2 = const i8 2
; CHECK: %umod3 = const i8 9
; CHECK: %umod4 = const i8 247
%smod1 = smod i8 %c, %d
%smod2 = smod i8 %cn, %d
%smod3 = smod i8 %c, %dn
%smod4 = smod i8 %cn, %dn
; CHECK: %smod1 = const i8 4
; CHECK: %smod2 = const i8 1
; CHECK: %smod3 = const i8 255
; CHECK: %smod4 = const i8 252
%urem1 = urem i8 %c, %d
%urem2 = urem i8 %cn, %d
%urem3 = urem i8 %c, %dn
%urem4 = urem i8 %cn, %dn
; CHECK: %urem1 = const i8 4
; CHECK: %urem2 = const i8 2
; CHECK: %urem3 = const i8 9
; CHECK: %urem4 = const i8 247
%srem1 = srem i8 %c, %d
%srem2 = srem i8 %cn, %d
%srem3 = srem i8 %c, %dn
%srem4 = srem i8 %cn, %dn
; CHECK: %srem1 = const i8 4
; CHECK: %srem2 = const i8 252
; CHECK: %srem3 = const i8 4
; CHECK: %srem4 = const i8 252
ret
}