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