Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/CodeGen/X86/stores-merging.ll
Show All 20 Lines | ; CHECK-NEXT: retq | ||||
store i32 456, i32* getelementptr inbounds (%structTy, %structTy* @e, i64 0, i32 2), align 4 | store i32 456, i32* getelementptr inbounds (%structTy, %structTy* @e, i64 0, i32 2), align 4 | ||||
ret void | ret void | ||||
} | } | ||||
;; This variant tests PR25154. | ;; This variant tests PR25154. | ||||
define void @redundant_stores_merging_reverse() { | define void @redundant_stores_merging_reverse() { | ||||
; CHECK-LABEL: redundant_stores_merging_reverse: | ; CHECK-LABEL: redundant_stores_merging_reverse: | ||||
; CHECK: # %bb.0: | ; CHECK: # %bb.0: | ||||
; CHECK-NEXT: movabsq $528280977409, %rax # imm = 0x7B00000001 | ; CHECK-NEXT: movabsq $1958505086977, %rax # imm = 0x1C800000001 | ||||
; CHECK-NEXT: movq %rax, e+{{.*}}(%rip) | ; CHECK-NEXT: movq %rax, e+{{.*}}(%rip) | ||||
; CHECK-NEXT: movl $456, e+{{.*}}(%rip) # imm = 0x1C8 | |||||
; CHECK-NEXT: retq | ; CHECK-NEXT: retq | ||||
store i32 123, i32* getelementptr inbounds (%structTy, %structTy* @e, i64 0, i32 2), align 4 | store i32 123, i32* getelementptr inbounds (%structTy, %structTy* @e, i64 0, i32 2), align 4 | ||||
store i32 456, i32* getelementptr inbounds (%structTy, %structTy* @e, i64 0, i32 2), align 4 | store i32 456, i32* getelementptr inbounds (%structTy, %structTy* @e, i64 0, i32 2), align 4 | ||||
store i32 1, i32* getelementptr inbounds (%structTy, %structTy* @e, i64 0, i32 1), align 4 | store i32 1, i32* getelementptr inbounds (%structTy, %structTy* @e, i64 0, i32 1), align 4 | ||||
ret void | ret void | ||||
} | } | ||||
@b = common global [8 x i8] zeroinitializer, align 2 | @b = common global [8 x i8] zeroinitializer, align 2 | ||||
▲ Show 20 Lines • Show All 183 Lines • Show Last 20 Lines |