mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-03 20:23:59 +00:00
add codegen test for unchecked math
This commit is contained in:
parent
4e7319cd3f
commit
8a25fdb409
46
src/test/codegen/unchecked_math.rs
Normal file
46
src/test/codegen/unchecked_math.rs
Normal file
@ -0,0 +1,46 @@
|
||||
#![crate_type = "lib"]
|
||||
#![feature(core_intrinsics)]
|
||||
|
||||
use std::intrinsics::*;
|
||||
|
||||
// CHECK-LABEL: @unchecked_add_signed
|
||||
#[no_mangle]
|
||||
pub unsafe fn unchecked_add_signed(a: i32, b: i32) -> i32 {
|
||||
// CHECK: add nsw
|
||||
unchecked_add(a, b)
|
||||
}
|
||||
|
||||
// CHECK-LABEL: @unchecked_add_unsigned
|
||||
#[no_mangle]
|
||||
pub unsafe fn unchecked_add_unsigned(a: u32, b: u32) -> u32 {
|
||||
// CHECK: add nuw
|
||||
unchecked_add(a, b)
|
||||
}
|
||||
|
||||
// CHECK-LABEL: @unchecked_sub_signed
|
||||
#[no_mangle]
|
||||
pub unsafe fn unchecked_sub_signed(a: i32, b: i32) -> i32 {
|
||||
// CHECK: sub nsw
|
||||
unchecked_sub(a, b)
|
||||
}
|
||||
|
||||
// CHECK-LABEL: @unchecked_sub_unsigned
|
||||
#[no_mangle]
|
||||
pub unsafe fn unchecked_sub_unsigned(a: u32, b: u32) -> u32 {
|
||||
// CHECK: sub nuw
|
||||
unchecked_sub(a, b)
|
||||
}
|
||||
|
||||
// CHECK-LABEL: @unchecked_mul_signed
|
||||
#[no_mangle]
|
||||
pub unsafe fn unchecked_mul_signed(a: i32, b: i32) -> i32 {
|
||||
// CHECK: mul nsw
|
||||
unchecked_mul(a, b)
|
||||
}
|
||||
|
||||
// CHECK-LABEL: @unchecked_mul_unsigned
|
||||
#[no_mangle]
|
||||
pub unsafe fn unchecked_mul_unsigned(a: u32, b: u32) -> u32 {
|
||||
// CHECK: mul nuw
|
||||
unchecked_mul(a, b)
|
||||
}
|
Loading…
Reference in New Issue
Block a user