blob: ec33a0f8ded0f4e3427dd976ac93c78816c02a39 [file] [log] [blame] [edit]
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -passes=licm < %s | FileCheck %s
define void @test(ptr %a) {
; CHECK-LABEL: @test(
; CHECK-NEXT: entry:
; CHECK-NEXT: br label [[LOOP:%.*]]
; CHECK: loop:
; CHECK-NEXT: store ptr null, ptr null, align 8
; CHECK-NEXT: [[P:%.*]] = load ptr, ptr null, align 8
; CHECK-NEXT: [[V:%.*]] = load i32, ptr [[P]], align 4
; CHECK-NEXT: store i32 [[V]], ptr [[A:%.*]], align 4
; CHECK-NEXT: br label [[LOOP]]
;
entry:
br label %loop
loop:
store ptr null, ptr null
%p = load ptr, ptr null
%v = load i32, ptr %p
store i32 %v, ptr %a
br label %loop
}
define void @test_inttoptr(ptr %a) {
; CHECK-LABEL: @test_inttoptr(
; CHECK-NEXT: entry:
; CHECK-NEXT: br label [[LOOP:%.*]]
; CHECK: loop:
; CHECK-NEXT: store ptr null, ptr inttoptr (i64 128 to ptr), align 8
; CHECK-NEXT: [[P:%.*]] = load ptr, ptr inttoptr (i64 128 to ptr), align 8
; CHECK-NEXT: [[V:%.*]] = load i32, ptr [[P]], align 4
; CHECK-NEXT: store i32 [[V]], ptr [[A:%.*]], align 4
; CHECK-NEXT: br label [[LOOP]]
;
entry:
br label %loop
loop:
store ptr null, ptr inttoptr (i64 128 to ptr)
%p = load ptr, ptr inttoptr (i64 128 to ptr)
%v = load i32, ptr %p
store i32 %v, ptr %a
br label %loop
}