Home | History | Annotate | Download | only in X86
      1 ; RUN: llc < %s -march=x86 | FileCheck %s
      2 ; RUN: llc < %s -march=x86 -addr-sink-using-gep=1 | FileCheck %s
      3 
      4 define i32 @test(i32* %X, i32 %B) {
      5 ; CHECK-LABEL: test:
      6 ; CHECK-NOT: ret
      7 ; CHECK-NOT: lea
      8 ; CHECK: mov{{.}} $4, ({{.*}},{{.*}},4)
      9 ; CHECK: ret
     10 ; CHECK: mov{{.}} ({{.*}},{{.*}},4),
     11 ; CHECK: ret
     12 
     13 	; This gep should be sunk out of this block into the load/store users.
     14 	%P = getelementptr i32, i32* %X, i32 %B
     15 	%G = icmp ult i32 %B, 1234
     16 	br i1 %G, label %T, label %F
     17 T:
     18 	store i32 4, i32* %P
     19 	ret i32 141
     20 F:
     21 	%V = load i32, i32* %P
     22 	ret i32 %V
     23 }
     24