xref: /llvm-project/llvm/test/CodeGen/X86/GlobalISel/ptrtoint.ll (revision 2f448bf509432c1a19ec46ab8cbc7353c03c6280)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -mtriple=x86_64-linux-gnu -global-isel -verify-machineinstrs < %s -o - | FileCheck %s --check-prefix=CHECK
3
4define i1 @ptrtoint_s1_p0(ptr %p) {
5; CHECK-LABEL: ptrtoint_s1_p0:
6; CHECK:       # %bb.0: # %entry
7; CHECK-NEXT:    movq %rdi, %rax
8; CHECK-NEXT:    # kill: def $al killed $al killed $rax
9; CHECK-NEXT:    retq
10entry:
11  %0 = ptrtoint ptr %p to i1
12  ret i1 %0
13}
14
15define i8 @ptrtoint_s8_p0(ptr %p) {
16; CHECK-LABEL: ptrtoint_s8_p0:
17; CHECK:       # %bb.0: # %entry
18; CHECK-NEXT:    movq %rdi, %rax
19; CHECK-NEXT:    # kill: def $al killed $al killed $rax
20; CHECK-NEXT:    retq
21entry:
22  %0 = ptrtoint ptr %p to i8
23  ret i8 %0
24}
25
26define i16 @ptrtoint_s16_p0(ptr %p) {
27; CHECK-LABEL: ptrtoint_s16_p0:
28; CHECK:       # %bb.0: # %entry
29; CHECK-NEXT:    movq %rdi, %rax
30; CHECK-NEXT:    # kill: def $ax killed $ax killed $rax
31; CHECK-NEXT:    retq
32entry:
33  %0 = ptrtoint ptr %p to i16
34  ret i16 %0
35}
36
37define i32 @ptrtoint_s32_p0(ptr %p) {
38; CHECK-LABEL: ptrtoint_s32_p0:
39; CHECK:       # %bb.0: # %entry
40; CHECK-NEXT:    movq %rdi, %rax
41; CHECK-NEXT:    # kill: def $eax killed $eax killed $rax
42; CHECK-NEXT:    retq
43entry:
44  %0 = ptrtoint ptr %p to i32
45  ret i32 %0
46}
47
48define i64 @ptrtoint_s64_p0(ptr %p) {
49; CHECK-LABEL: ptrtoint_s64_p0:
50; CHECK:       # %bb.0: # %entry
51; CHECK-NEXT:    movq %rdi, %rax
52; CHECK-NEXT:    retq
53entry:
54  %0 = ptrtoint ptr %p to i64
55  ret i64 %0
56}
57