xref: /llvm-project/llvm/test/CodeGen/X86/apx/long-instruction-fixup-x32.ll (revision 37293e69e6362e3559c1a4e1ac62b53f2b0edb0a)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=x86_64-pc-linux-gnux32 -mattr=+ndd -verify-machineinstrs | FileCheck %s
3
4
5define i32 @add32mi_SIB_ADSIZE(ptr nocapture noundef readonly %a, i32 noundef %b) {
6; CHECK-LABEL: add32mi_SIB_ADSIZE:
7; CHECK:       # %bb.0: # %entry
8; CHECK-NEXT:    movl 1164(%edi,%esi,4), %eax
9; CHECK-NEXT:    addl $4660, %eax # imm = 0x1234
10; CHECK-NEXT:    retq
11entry:
12  %add.ptr = getelementptr inbounds i32, ptr %a, i32 %b
13  %add.ptr1 = getelementptr inbounds i8, ptr %add.ptr, i32 1164
14  %0 = load i32, ptr %add.ptr1
15  %add = add nsw i32 %0, 4660
16  ret i32 %add
17}
18
19declare ptr @llvm.thread.pointer()
20
21define i32 @add32mi_FS_ADSIZE(i32 %i) {
22; CHECK-LABEL: add32mi_FS_ADSIZE:
23; CHECK:       # %bb.0: # %entry
24; CHECK-NEXT:    movl %fs:0, %eax
25; CHECK-NEXT:    addl $4660, (%eax,%edi,4), %eax # imm = 0x1234
26; CHECK-NEXT:    retq
27entry:
28  %0 = tail call ptr @llvm.thread.pointer()
29  %arrayidx = getelementptr inbounds i32, ptr %0, i32 %i
30  %1 = load i32, ptr %arrayidx
31  %add = add nsw i32 %1, 4660
32  ret i32 %add
33}
34
35define i32 @add32mi_FS_SIB(i32 %i) {
36; CHECK-LABEL: add32mi_FS_SIB:
37; CHECK:       # %bb.0: # %entry
38; CHECK-NEXT:    movl %fs:0, %eax
39; CHECK-NEXT:    addl $4660, %eax # imm = 0x1234
40; CHECK-NEXT:    retq
41entry:
42  %0 = tail call ptr @llvm.thread.pointer()
43  %arrayidx = getelementptr inbounds i32, ptr %0, i32 0
44  %1 = load i32, ptr %arrayidx
45  %add = add nsw i32 %1, 4660
46  ret i32 %add
47}
48
49define i32 @add32mi_GS_ADSIZE(ptr addrspace(256) %a) {
50; CHECK-LABEL: add32mi_GS_ADSIZE:
51; CHECK:       # %bb.0: # %entry
52; CHECK-NEXT:    movl %gs:4936(%edi), %eax
53; CHECK-NEXT:    addl $123456, %eax # imm = 0x1E240
54; CHECK-NEXT:    retq
55entry:
56  %arrayidx = getelementptr inbounds i32, ptr addrspace(256) %a, i32 1234
57  %t = load i32, ptr addrspace(256) %arrayidx
58  %add = add i32 %t, 123456
59  ret i32 %add
60}
61