; RUN: llc -mtriple=x86_64-apple-darwin < %s| FileCheck %s | |
; A bug in DAGCombiner prevented it forming a zextload in this simple case | |
; because it counted both the chain user and the real user against the | |
; profitability total. | |
define void @load_zext(i32* nocapture %p){ | |
entry: | |
%0 = load i32, i32* %p, align 4 | |
%and = and i32 %0, 255 | |
tail call void @use(i32 %and) | |
ret void | |
; CHECK: movzbl ({{%r[a-z]+}}), {{%e[a-z]+}} | |
} | |
declare void @use(i32) |