From: Alexey Bataev Date: Thu, 30 Nov 2017 14:33:58 +0000 (+0000) Subject: [InstCombine] Additional test for PR35354, NFC. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=06cb6a98c1566d7867427453ad7bd22e49ab00cd;p=llvm [InstCombine] Additional test for PR35354, NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319436 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Transforms/InstCombine/load-bitcast-select.ll b/test/Transforms/InstCombine/load-bitcast-select.ll index 4fc5d8ffa05..7e5652878ac 100644 --- a/test/Transforms/InstCombine/load-bitcast-select.ll +++ b/test/Transforms/InstCombine/load-bitcast-select.ll @@ -68,3 +68,20 @@ define i32 @store_bitcasted_load(i1 %cond, float* dereferenceable(4) %addr1, flo %ld = load i32, i32* %bc1 ret i32 %ld } + +define void @bitcasted_store(i1 %cond, float* %loadaddr1, float* %loadaddr2, float* %storeaddr) { +; CHECK-LABEL: @bitcasted_store( +; CHECK-NEXT: [[SEL:%.*]] = select i1 [[COND:%.*]], float* [[LOADADDR1:%.*]], float* [[LOADADDR2:%.*]] +; CHECK-NEXT: [[INT_LOAD_ADDR:%.*]] = bitcast float* [[SEL]] to i32* +; CHECK-NEXT: [[LD:%.*]] = load i32, i32* [[INT_LOAD_ADDR]], align 4 +; CHECK-NEXT: [[INT_STORE_ADDR:%.*]] = bitcast float* [[STOREADDR:%.*]] to i32* +; CHECK-NEXT: store i32 [[LD]], i32* [[INT_STORE_ADDR]], align 4 +; CHECK-NEXT: ret void +; + %sel = select i1 %cond, float* %loadaddr1, float* %loadaddr2 + %int_load_addr = bitcast float* %sel to i32* + %ld = load i32, i32* %int_load_addr + %int_store_addr = bitcast float* %storeaddr to i32* + store i32 %ld, i32* %int_store_addr + ret void +}