Xamarin Public Jenkins (auto-signing) f32dbaf0b2 Imported Upstream version 5.18.0.225
Former-commit-id: 10196d987d5fc5564b9d3b33b1fdf13190f4d0b5
2018-12-21 19:01:49 +00:00

25 lines
648 B
LLVM

; RUN: llc < %s -mtriple=x86_64-- -O0 | FileCheck %s
; Make sure fast-isel doesn't reset the materialised constant map
; across an intrinsic call.
; CHECK: movl $100000
; CHECK-NOT: movl $100000
define i1 @test1(i32 %v1, i32 %v2, i32* %X) nounwind {
entry:
%a = shl i32 100000, %v1
%t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %v2)
%ext = extractvalue {i32, i1} %t, 0
%sum = shl i32 100000, %ext
%obit = extractvalue {i32, i1} %t, 1
br i1 %obit, label %overflow, label %normal
normal:
store i32 %sum, i32* %X
br label %overflow
overflow:
ret i1 false
}
declare {i32, i1} @llvm.sadd.with.overflow.i32(i32, i32)