| ; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | \ | |
| ; RUN: grep shld | wc -l | grep 1 | |
| ; | |
| ; Check that the isel does not fold the shld, which already folds a load | |
| ; and has two uses, into a store. | |
| %A = external global uint | |
| uint %test5(uint %B, ubyte %C) { | |
| %tmp.1 = load uint *%A; | |
| %tmp.2 = shl uint %tmp.1, ubyte %C | |
| %tmp.3 = sub ubyte 32, %C | |
| %tmp.4 = shr uint %B, ubyte %tmp.3 | |
| %tmp.5 = or uint %tmp.4, %tmp.2 | |
| store uint %tmp.5, uint* %A | |
| ret uint %tmp.5 | |
| } |