diff --git a/clang/test/CodeGen/aie/aie2p/aie2p-stream-intrinsics.cpp b/clang/test/CodeGen/aie/aie2p/aie2p-stream-intrinsics.cpp index 8ded4c9ad90c..5aab6cd8cfea 100644 --- a/clang/test/CodeGen/aie/aie2p/aie2p-stream-intrinsics.cpp +++ b/clang/test/CodeGen/aie/aie2p/aie2p-stream-intrinsics.cpp @@ -5,7 +5,7 @@ // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// (c) Copyright 2024 Advanced Micro Devices, Inc. or its affiliates +// (c) Copyright 2024-2026 Advanced Micro Devices, Inc. or its affiliates // //===---------------------------------------------------------------------===// // RUN: %clang -O2 %s --target=aie2p -nostdlibinc -S -emit-llvm -o - | FileCheck %s @@ -400,6 +400,7 @@ v32int32 test_get_scd_v32int32() { return get_scd_v32int32(); } // v32uint32 test_get_scd_v32uint32() { return get_scd_v32uint32(); } +// // CHECK-LABEL: @_Z24test_get_scd_v32acc32_loi( // CHECK-NEXT: entry: // CHECK-NEXT: [[TMP0:%.*]] = tail call noundef <32 x i32> @llvm.aie2p.scd.expand.lo(i32 [[EN:%.*]]) @@ -880,8 +881,8 @@ void test_put_ms(int val) { put_ms(val); } // CHECK-NEXT: entry: // CHECK-NEXT: [[TMP0:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[VAL:%.*]], i32 [[TLAST:%.*]]) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP0]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2:![0-9]+]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2:![0-9]+]] // CHECK-NEXT: ret void // void test_put_ms_nb(int val, int tlast, bool &success) { @@ -892,8 +893,8 @@ void test_put_ms_nb(int val, int tlast, bool &success) { // CHECK-NEXT: entry: // CHECK-NEXT: [[TMP0:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[VAL:%.*]], i32 0) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP0]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret void // void test_put_ms_nb(int val, bool &success) { put_ms_nb(val, success); } @@ -916,8 +917,8 @@ void test_put_ms(unsigned int val) { put_ms(val); } // CHECK-NEXT: entry: // CHECK-NEXT: [[TMP0:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[VAL:%.*]], i32 [[TLAST:%.*]]) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP0]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret void // void test_put_ms_nb(unsigned int val, int tlast, bool &success) { @@ -928,8 +929,8 @@ void test_put_ms_nb(unsigned int val, int tlast, bool &success) { // CHECK-NEXT: entry: // CHECK-NEXT: [[TMP0:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[VAL:%.*]], i32 0) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP0]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret void // void test_put_ms_nb(unsigned int val, bool &success) { @@ -957,8 +958,8 @@ void test_put_ms(v8int4 val) { put_ms(val); } // CHECK-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret void // void test_put_ms_nb(v8int4 val, int tlast, bool &success) { @@ -970,8 +971,8 @@ void test_put_ms_nb(v8int4 val, int tlast, bool &success) { // CHECK-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 0) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret void // void test_put_ms_nb(v8int4 val, bool &success) { put_ms_nb(val, success); } @@ -997,8 +998,8 @@ void test_put_ms(v8uint4 val) { put_ms(val); } // CHECK-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret void // void test_put_ms_nb(v8uint4 val, int tlast, bool &success) { @@ -1010,8 +1011,8 @@ void test_put_ms_nb(v8uint4 val, int tlast, bool &success) { // CHECK-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 0) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret void // void test_put_ms_nb(v8uint4 val, bool &success) { put_ms_nb(val, success); } @@ -1037,8 +1038,8 @@ void test_put_ms(v4int8 val) { put_ms(val); } // CHECK-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret void // void test_put_ms_nb(v4int8 val, int tlast, bool &success) { @@ -1050,8 +1051,8 @@ void test_put_ms_nb(v4int8 val, int tlast, bool &success) { // CHECK-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 0) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret void // void test_put_ms_nb(v4int8 val, bool &success) { put_ms_nb(val, success); } @@ -1077,8 +1078,8 @@ void test_put_ms(v4uint8 val) { put_ms(val); } // CHECK-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret void // void test_put_ms_nb(v4uint8 val, int tlast, bool &success) { @@ -1090,8 +1091,8 @@ void test_put_ms_nb(v4uint8 val, int tlast, bool &success) { // CHECK-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 0) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret void // void test_put_ms_nb(v4uint8 val, bool &success) { put_ms_nb(val, success); } @@ -1117,8 +1118,8 @@ void test_put_ms(v2int16 val) { put_ms(val); } // CHECK-NEXT: [[TMP0:%.*]] = bitcast <2 x i16> [[VAL:%.*]] to i32 // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret void // void test_put_ms_nb(v2int16 val, int tlast, bool &success) { @@ -1130,8 +1131,8 @@ void test_put_ms_nb(v2int16 val, int tlast, bool &success) { // CHECK-NEXT: [[TMP0:%.*]] = bitcast <2 x i16> [[VAL:%.*]] to i32 // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 0) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret void // void test_put_ms_nb(v2int16 val, bool &success) { put_ms_nb(val, success); } @@ -1157,8 +1158,8 @@ void test_put_ms(v2uint16 val) { put_ms(val); } // CHECK-NEXT: [[TMP0:%.*]] = bitcast <2 x i16> [[VAL:%.*]] to i32 // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret void // void test_put_ms_nb(v2uint16 val, int tlast, bool &success) { @@ -1170,8 +1171,8 @@ void test_put_ms_nb(v2uint16 val, int tlast, bool &success) { // CHECK-NEXT: [[TMP0:%.*]] = bitcast <2 x i16> [[VAL:%.*]] to i32 // CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 0) // CHECK-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret void // void test_put_ms_nb(v2uint16 val, bool &success) { put_ms_nb(val, success); } @@ -2661,8 +2662,8 @@ int test_get_ss() { return get_ss(); } // CHECK-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret i32 [[TMP2]] // int test_get_ss(bool &tlast) { return get_ss(tlast); } @@ -2674,8 +2675,8 @@ int test_get_ss(bool &tlast) { return get_ss(tlast); } // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 // CHECK-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret i32 [[TMP2]] // int test_get_ss_nb(bool &success) { return get_ss_nb(success); } @@ -2686,11 +2687,11 @@ int test_get_ss_nb(bool &success) { return get_ss_nb(success); } // CHECK-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// CHECK-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret i32 [[TMP2]] // int test_get_ss_nb(bool &success, bool &tlast) { @@ -2711,8 +2712,8 @@ int test_get_ss_int() { return get_ss_int(); } // CHECK-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret i32 [[TMP2]] // int test_get_ss_int(bool &tlast) { return get_ss_int(tlast); } @@ -2724,8 +2725,8 @@ int test_get_ss_int(bool &tlast) { return get_ss_int(tlast); } // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 // CHECK-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret i32 [[TMP2]] // int test_get_ss_nb_int(bool &success) { return get_ss_nb_int(success); } @@ -2736,11 +2737,11 @@ int test_get_ss_nb_int(bool &success) { return get_ss_nb_int(success); } // CHECK-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// CHECK-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret i32 [[TMP2]] // int test_get_ss_nb_int(bool &success, bool &tlast) { @@ -2761,8 +2762,8 @@ unsigned int test_get_ss_uint() { return get_ss_uint(); } // CHECK-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret i32 [[TMP2]] // unsigned int test_get_ss_uint(bool &tlast) { return get_ss_uint(tlast); } @@ -2774,8 +2775,8 @@ unsigned int test_get_ss_uint(bool &tlast) { return get_ss_uint(tlast); } // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 // CHECK-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret i32 [[TMP2]] // unsigned int test_get_ss_nb_uint(bool &success) { @@ -2788,11 +2789,11 @@ unsigned int test_get_ss_nb_uint(bool &success) { // CHECK-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// CHECK-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret i32 [[TMP2]] // unsigned int test_get_ss_nb_uint(bool &success, bool &tlast) { @@ -2815,8 +2816,8 @@ v8int4 test_get_ss_v8int4() { return get_ss_v8int4(); } // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <4 x i8> [[TMP3]] // v8int4 test_get_ss_v8int4(bool &tlast) { return get_ss_v8int4(tlast); } @@ -2829,8 +2830,8 @@ v8int4 test_get_ss_v8int4(bool &tlast) { return get_ss_v8int4(tlast); } // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // CHECK-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <4 x i8> [[TMP3]] // v8int4 test_get_ss_nb_v8int4(bool &success) { @@ -2844,11 +2845,11 @@ v8int4 test_get_ss_nb_v8int4(bool &success) { // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// CHECK-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// CHECK-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <4 x i8> [[TMP3]] // v8int4 test_get_ss_nb_v8int4(bool &success, bool &tlast) { @@ -2871,8 +2872,8 @@ v8uint4 test_get_ss_v8uint4() { return get_ss_v8uint4(); } // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <4 x i8> [[TMP3]] // v8uint4 test_get_ss_v8uint4(bool &tlast) { return get_ss_v8uint4(tlast); } @@ -2885,8 +2886,8 @@ v8uint4 test_get_ss_v8uint4(bool &tlast) { return get_ss_v8uint4(tlast); } // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // CHECK-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <4 x i8> [[TMP3]] // v8uint4 test_get_ss_nb_v8uint4(bool &success) { @@ -2900,11 +2901,11 @@ v8uint4 test_get_ss_nb_v8uint4(bool &success) { // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// CHECK-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// CHECK-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <4 x i8> [[TMP3]] // v8uint4 test_get_ss_nb_v8uint4(bool &success, bool &tlast) { @@ -2927,8 +2928,8 @@ v4int8 test_get_ss_v4int8() { return get_ss_v4int8(); } // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <4 x i8> [[TMP3]] // v4int8 test_get_ss_v4int8(bool &tlast) { return get_ss_v4int8(tlast); } @@ -2941,8 +2942,8 @@ v4int8 test_get_ss_v4int8(bool &tlast) { return get_ss_v4int8(tlast); } // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // CHECK-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <4 x i8> [[TMP3]] // v4int8 test_get_ss_nb_v4int8(bool &success) { @@ -2956,11 +2957,11 @@ v4int8 test_get_ss_nb_v4int8(bool &success) { // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// CHECK-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// CHECK-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <4 x i8> [[TMP3]] // v4int8 test_get_ss_nb_v4int8(bool &success, bool &tlast) { @@ -2983,8 +2984,8 @@ v4uint8 test_get_ss_v4uint8() { return get_ss_v4uint8(); } // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <4 x i8> [[TMP3]] // v4uint8 test_get_ss_v4uint8(bool &tlast) { return get_ss_v4uint8(tlast); } @@ -2997,8 +2998,8 @@ v4uint8 test_get_ss_v4uint8(bool &tlast) { return get_ss_v4uint8(tlast); } // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // CHECK-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <4 x i8> [[TMP3]] // v4uint8 test_get_ss_nb_v4uint8(bool &success) { @@ -3012,11 +3013,11 @@ v4uint8 test_get_ss_nb_v4uint8(bool &success) { // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// CHECK-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// CHECK-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <4 x i8> [[TMP3]] // v4uint8 test_get_ss_nb_v4uint8(bool &success, bool &tlast) { @@ -3039,8 +3040,8 @@ v2int16 test_get_ss_v2int16() { return get_ss_v2int16(); } // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <2 x i16> [[TMP3]] // v2int16 test_get_ss_v2int16(bool &tlast) { return get_ss_v2int16(tlast); } @@ -3053,8 +3054,8 @@ v2int16 test_get_ss_v2int16(bool &tlast) { return get_ss_v2int16(tlast); } // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // CHECK-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <2 x i16> [[TMP3]] // v2int16 test_get_ss_nb_v2int16(bool &success) { @@ -3068,11 +3069,11 @@ v2int16 test_get_ss_nb_v2int16(bool &success) { // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// CHECK-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// CHECK-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <2 x i16> [[TMP3]] // v2int16 test_get_ss_nb_v2int16(bool &success, bool &tlast) { @@ -3095,8 +3096,8 @@ v2uint16 test_get_ss_v2uint16() { return get_ss_v2uint16(); } // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <2 x i16> [[TMP3]] // v2uint16 test_get_ss_v2uint16(bool &tlast) { return get_ss_v2uint16(tlast); } @@ -3109,8 +3110,8 @@ v2uint16 test_get_ss_v2uint16(bool &tlast) { return get_ss_v2uint16(tlast); } // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // CHECK-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <2 x i16> [[TMP3]] // v2uint16 test_get_ss_nb_v2uint16(bool &success) { @@ -3124,11 +3125,11 @@ v2uint16 test_get_ss_nb_v2uint16(bool &success) { // CHECK-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // CHECK-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // CHECK-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// CHECK-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// CHECK-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// CHECK-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// CHECK-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// CHECK-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// CHECK-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // CHECK-NEXT: ret <2 x i16> [[TMP3]] // v2uint16 test_get_ss_nb_v2uint16(bool &success, bool &tlast) { @@ -5249,28 +5250,26 @@ v64acc32 test_get_scd_expand_v64acc32(int en, int pos) { } // CHECK-LABEL: @_Z33test_get_scd_expand_v32acc32_incriRi( // CHECK-NEXT: entry: -// CHECK-NEXT: [[TMP0:%.*]] = load i20, ptr [[POS:%.*]], align 4, !tbaa [[TBAA6:![0-9]+]] -// CHECK-NEXT: [[TMP1:%.*]] = inttoptr i20 [[TMP0]] to ptr -// CHECK-NEXT: [[TMP2:%.*]] = tail call { <16 x i64>, i32 } @llvm.aie2p.scd.expand.ACC1024.incr(i32 [[EN:%.*]], ptr [[TMP1]]) -// CHECK-NEXT: [[TMP3:%.*]] = extractvalue { <16 x i64>, i32 } [[TMP2]], 1 -// CHECK-NEXT: store i32 [[TMP3]], ptr [[POS]], align 4 -// CHECK-NEXT: [[TMP4:%.*]] = extractvalue { <16 x i64>, i32 } [[TMP2]], 0 -// CHECK-NEXT: [[TMP5:%.*]] = bitcast <16 x i64> [[TMP4]] to <32 x i32> -// CHECK-NEXT: ret <32 x i32> [[TMP5]] +// CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[POS:%.*]], align 4, !tbaa [[TBAA6:![0-9]+]] +// CHECK-NEXT: [[TMP1:%.*]] = tail call { <16 x i64>, i32 } @llvm.aie2p.scd.expand.ACC1024.incr(i32 [[EN:%.*]], ptr [[TMP0]]) +// CHECK-NEXT: [[TMP2:%.*]] = extractvalue { <16 x i64>, i32 } [[TMP1]], 1 +// CHECK-NEXT: store i32 [[TMP2]], ptr [[POS]], align 4 +// CHECK-NEXT: [[TMP3:%.*]] = extractvalue { <16 x i64>, i32 } [[TMP1]], 0 +// CHECK-NEXT: [[TMP4:%.*]] = bitcast <16 x i64> [[TMP3]] to <32 x i32> +// CHECK-NEXT: ret <32 x i32> [[TMP4]] // v32acc32 test_get_scd_expand_v32acc32_incr(int en, int &pos) { return get_scd_expand_v32acc32_incr(en, pos); } // CHECK-LABEL: @_Z33test_get_scd_expand_v64acc32_incriRi( // CHECK-NEXT: entry: -// CHECK-NEXT: [[TMP0:%.*]] = load i20, ptr [[POS:%.*]], align 4, !tbaa [[TBAA6]] -// CHECK-NEXT: [[TMP1:%.*]] = inttoptr i20 [[TMP0]] to ptr -// CHECK-NEXT: [[TMP2:%.*]] = tail call { <32 x i64>, i32 } @llvm.aie2p.scd.expand.ACC2048.incr(i32 [[EN:%.*]], ptr [[TMP1]]) -// CHECK-NEXT: [[TMP3:%.*]] = extractvalue { <32 x i64>, i32 } [[TMP2]], 1 -// CHECK-NEXT: store i32 [[TMP3]], ptr [[POS]], align 4 -// CHECK-NEXT: [[TMP4:%.*]] = extractvalue { <32 x i64>, i32 } [[TMP2]], 0 -// CHECK-NEXT: [[TMP5:%.*]] = bitcast <32 x i64> [[TMP4]] to <64 x i32> -// CHECK-NEXT: ret <64 x i32> [[TMP5]] +// CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[POS:%.*]], align 4, !tbaa [[TBAA6]] +// CHECK-NEXT: [[TMP1:%.*]] = tail call { <32 x i64>, i32 } @llvm.aie2p.scd.expand.ACC2048.incr(i32 [[EN:%.*]], ptr [[TMP0]]) +// CHECK-NEXT: [[TMP2:%.*]] = extractvalue { <32 x i64>, i32 } [[TMP1]], 1 +// CHECK-NEXT: store i32 [[TMP2]], ptr [[POS]], align 4 +// CHECK-NEXT: [[TMP3:%.*]] = extractvalue { <32 x i64>, i32 } [[TMP1]], 0 +// CHECK-NEXT: [[TMP4:%.*]] = bitcast <32 x i64> [[TMP3]] to <64 x i32> +// CHECK-NEXT: ret <64 x i32> [[TMP4]] // v64acc32 test_get_scd_expand_v64acc32_incr(int en, int &pos) { return get_scd_expand_v64acc32_incr(en, pos); diff --git a/clang/test/CodeGen/aie/common-tests/aie-stream-intrinsics.cpp b/clang/test/CodeGen/aie/common-tests/aie-stream-intrinsics.cpp index bcb9f28c3a5f..1733a6c79843 100644 --- a/clang/test/CodeGen/aie/common-tests/aie-stream-intrinsics.cpp +++ b/clang/test/CodeGen/aie/common-tests/aie-stream-intrinsics.cpp @@ -107,7 +107,6 @@ v64int8 test_get_scd_v64int8(int en) { return get_scd_v64int8(en); } // v64uint8 test_get_scd_v64uint8(int en) { return get_scd_v64uint8(en); } -// // AIE2P-LABEL: @_Z21test_get_scd_v32int16i( // AIE2P-NEXT: entry: // AIE2P-NEXT: [[TMP0:%.*]] = tail call <16 x i32> @llvm.aie2p.scd.read.vec(i32 [[EN:%.*]]) @@ -148,7 +147,6 @@ v32uint16 test_get_scd_v32uint16(int en) { return get_scd_v32uint16(en); } // v16int32 test_get_scd_v16int32(int en) { return get_scd_v16int32(en); } -// // AIE2P-LABEL: @_Z22test_get_scd_v16uint32i( // AIE2P-NEXT: entry: // AIE2P-NEXT: [[TMP0:%.*]] = tail call noundef <16 x i32> @llvm.aie2p.scd.read.vec(i32 [[EN:%.*]]) @@ -161,6 +159,7 @@ v16int32 test_get_scd_v16int32(int en) { return get_scd_v16int32(en); } // v16uint32 test_get_scd_v16uint32(int en) { return get_scd_v16uint32(en); } +// // AIE2P-LABEL: @_Z24test_get_scd_v32bfloat16i( // AIE2P-NEXT: entry: // AIE2P-NEXT: [[TMP0:%.*]] = tail call <16 x i32> @llvm.aie2p.scd.read.vec(i32 [[EN:%.*]]) @@ -175,6 +174,7 @@ v16uint32 test_get_scd_v16uint32(int en) { return get_scd_v16uint32(en); } // v32bfloat16 test_get_scd_v32bfloat16(int en) { return get_scd_v32bfloat16(en); } +// // AIE2P-LABEL: @_Z21test_get_scd_v16acc32v( // AIE2P-NEXT: entry: // AIE2P-NEXT: [[TMP0:%.*]] = tail call noundef <16 x i32> @llvm.aie2p.scd.read.acc32(i32 1) @@ -285,7 +285,6 @@ v64uint8 test_get_scd_v64uint8() { return get_scd_v64uint8(); } // v32int16 test_get_scd_v32int16() { return get_scd_v32int16(); } -// // AIE2P-LABEL: @_Z22test_get_scd_v32uint16v( // AIE2P-NEXT: entry: // AIE2P-NEXT: [[TMP0:%.*]] = tail call <16 x i32> @llvm.aie2p.scd.read.vec(i32 1) @@ -808,7 +807,6 @@ v16acc64 test_get_scd_v16acc64_lo() { return get_scd_v16acc64_lo(); } // v16acc64 test_get_scd_v16acc64_hi() { return get_scd_v16acc64_hi(); } -// // AIE2P-LABEL: @_Z12test_put_mcdDv16_u7__acc32i( // AIE2P-NEXT: entry: // AIE2P-NEXT: [[TMP0:%.*]] = bitcast <16 x i32> [[A:%.*]] to <8 x i64> @@ -823,7 +821,6 @@ v16acc64 test_get_scd_v16acc64_hi() { return get_scd_v16acc64_hi(); } // void test_put_mcd(v16acc32 a, int en) { put_mcd(a, en); } -// // AIE2P-LABEL: @_Z12test_put_mcdDv8_u7__acc64i( // AIE2P-NEXT: entry: // AIE2P-NEXT: tail call void @llvm.aie2p.mcd.write.acc32(<8 x i64> [[A:%.*]], i32 [[EN:%.*]]) @@ -1554,16 +1551,16 @@ void test_put_ms(int val) { put_ms(val); } // AIE2P-NEXT: entry: // AIE2P-NEXT: [[TMP0:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[VAL:%.*]], i32 [[TLAST:%.*]]) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP0]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2:![0-9]+]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2:![0-9]+]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbiiRb( // AIE2PS-NEXT: entry: // AIE2PS-NEXT: [[TMP0:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[VAL:%.*]], i32 [[TLAST:%.*]]) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP0]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2:![0-9]+]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2:![0-9]+]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(int val, int tlast, bool &success) { @@ -1574,16 +1571,16 @@ void test_put_ms_nb(int val, int tlast, bool &success) { // AIE2P-NEXT: entry: // AIE2P-NEXT: [[TMP0:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[VAL:%.*]], i32 0) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP0]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbiRb( // AIE2PS-NEXT: entry: // AIE2PS-NEXT: [[TMP0:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[VAL:%.*]], i32 0) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP0]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(int val, bool &success) { put_ms_nb(val, success); } @@ -1616,16 +1613,16 @@ void test_put_ms(unsigned int val) { put_ms(val); } // AIE2P-NEXT: entry: // AIE2P-NEXT: [[TMP0:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[VAL:%.*]], i32 [[TLAST:%.*]]) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP0]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbjiRb( // AIE2PS-NEXT: entry: // AIE2PS-NEXT: [[TMP0:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[VAL:%.*]], i32 [[TLAST:%.*]]) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP0]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(unsigned int val, int tlast, bool &success) { @@ -1636,16 +1633,16 @@ void test_put_ms_nb(unsigned int val, int tlast, bool &success) { // AIE2P-NEXT: entry: // AIE2P-NEXT: [[TMP0:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[VAL:%.*]], i32 0) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP0]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbjRb( // AIE2PS-NEXT: entry: // AIE2PS-NEXT: [[TMP0:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[VAL:%.*]], i32 0) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP0]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(unsigned int val, bool &success) { @@ -1685,8 +1682,8 @@ void test_put_ms(v8int4 val) { put_ms(val); } // AIE2P-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2P-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbDv4_DB8_iRb( @@ -1694,8 +1691,8 @@ void test_put_ms(v8int4 val) { put_ms(val); } // AIE2PS-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2PS-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(v8int4 val, int tlast, bool &success) { @@ -1707,8 +1704,8 @@ void test_put_ms_nb(v8int4 val, int tlast, bool &success) { // AIE2P-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2P-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 0) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbDv4_DB8_Rb( @@ -1716,8 +1713,8 @@ void test_put_ms_nb(v8int4 val, int tlast, bool &success) { // AIE2PS-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2PS-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[TMP0]], i32 0) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(v8int4 val, bool &success) { put_ms_nb(val, success); } @@ -1755,8 +1752,8 @@ void test_put_ms(v8uint4 val) { put_ms(val); } // AIE2P-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2P-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbDv4_DU8_iRb( @@ -1764,8 +1761,8 @@ void test_put_ms(v8uint4 val) { put_ms(val); } // AIE2PS-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2PS-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(v8uint4 val, int tlast, bool &success) { @@ -1777,8 +1774,8 @@ void test_put_ms_nb(v8uint4 val, int tlast, bool &success) { // AIE2P-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2P-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 0) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbDv4_DU8_Rb( @@ -1786,8 +1783,8 @@ void test_put_ms_nb(v8uint4 val, int tlast, bool &success) { // AIE2PS-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2PS-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[TMP0]], i32 0) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(v8uint4 val, bool &success) { put_ms_nb(val, success); } @@ -1825,8 +1822,8 @@ void test_put_ms(v4int8 val) { put_ms(val); } // AIE2P-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2P-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbDv4_aiRb( @@ -1834,8 +1831,8 @@ void test_put_ms(v4int8 val) { put_ms(val); } // AIE2PS-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2PS-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(v4int8 val, int tlast, bool &success) { @@ -1847,8 +1844,8 @@ void test_put_ms_nb(v4int8 val, int tlast, bool &success) { // AIE2P-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2P-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 0) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbDv4_aRb( @@ -1856,8 +1853,8 @@ void test_put_ms_nb(v4int8 val, int tlast, bool &success) { // AIE2PS-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2PS-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[TMP0]], i32 0) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(v4int8 val, bool &success) { put_ms_nb(val, success); } @@ -1895,8 +1892,8 @@ void test_put_ms(v4uint8 val) { put_ms(val); } // AIE2P-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2P-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbDv4_hiRb( @@ -1904,8 +1901,8 @@ void test_put_ms(v4uint8 val) { put_ms(val); } // AIE2PS-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2PS-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(v4uint8 val, int tlast, bool &success) { @@ -1917,8 +1914,8 @@ void test_put_ms_nb(v4uint8 val, int tlast, bool &success) { // AIE2P-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2P-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 0) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbDv4_hRb( @@ -1926,8 +1923,8 @@ void test_put_ms_nb(v4uint8 val, int tlast, bool &success) { // AIE2PS-NEXT: [[TMP0:%.*]] = bitcast <4 x i8> [[VAL:%.*]] to i32 // AIE2PS-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[TMP0]], i32 0) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(v4uint8 val, bool &success) { put_ms_nb(val, success); } @@ -1965,8 +1962,8 @@ void test_put_ms(v2int16 val) { put_ms(val); } // AIE2P-NEXT: [[TMP0:%.*]] = bitcast <2 x i16> [[VAL:%.*]] to i32 // AIE2P-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbDv2_siRb( @@ -1974,8 +1971,8 @@ void test_put_ms(v2int16 val) { put_ms(val); } // AIE2PS-NEXT: [[TMP0:%.*]] = bitcast <2 x i16> [[VAL:%.*]] to i32 // AIE2PS-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(v2int16 val, int tlast, bool &success) { @@ -1987,8 +1984,8 @@ void test_put_ms_nb(v2int16 val, int tlast, bool &success) { // AIE2P-NEXT: [[TMP0:%.*]] = bitcast <2 x i16> [[VAL:%.*]] to i32 // AIE2P-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 0) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbDv2_sRb( @@ -1996,8 +1993,8 @@ void test_put_ms_nb(v2int16 val, int tlast, bool &success) { // AIE2PS-NEXT: [[TMP0:%.*]] = bitcast <2 x i16> [[VAL:%.*]] to i32 // AIE2PS-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[TMP0]], i32 0) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(v2int16 val, bool &success) { put_ms_nb(val, success); } @@ -2035,8 +2032,8 @@ void test_put_ms(v2uint16 val) { put_ms(val); } // AIE2P-NEXT: [[TMP0:%.*]] = bitcast <2 x i16> [[VAL:%.*]] to i32 // AIE2P-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbDv2_tiRb( @@ -2044,8 +2041,8 @@ void test_put_ms(v2uint16 val) { put_ms(val); } // AIE2PS-NEXT: [[TMP0:%.*]] = bitcast <2 x i16> [[VAL:%.*]] to i32 // AIE2PS-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[TMP0]], i32 [[TLAST:%.*]]) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(v2uint16 val, int tlast, bool &success) { @@ -2057,8 +2054,8 @@ void test_put_ms_nb(v2uint16 val, int tlast, bool &success) { // AIE2P-NEXT: [[TMP0:%.*]] = bitcast <2 x i16> [[VAL:%.*]] to i32 // AIE2P-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2p.put.ms.nb(i32 [[TMP0]], i32 0) // AIE2P-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret void // // AIE2PS-LABEL: @_Z14test_put_ms_nbDv2_tRb( @@ -2066,8 +2063,8 @@ void test_put_ms_nb(v2uint16 val, int tlast, bool &success) { // AIE2PS-NEXT: [[TMP0:%.*]] = bitcast <2 x i16> [[VAL:%.*]] to i32 // AIE2PS-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.aie2ps.put.ms.nb(i32 [[TMP0]], i32 0) // AIE2PS-NEXT: [[TOBOOL_I:%.*]] = icmp ne i32 [[TMP1]], 0 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = zext i1 [[TOBOOL_I]] to i8 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret void // void test_put_ms_nb(v2uint16 val, bool &success) { put_ms_nb(val, success); } @@ -4961,8 +4958,8 @@ int test_get_ss() { return get_ss(); } // AIE2P-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret i32 [[TMP2]] // // AIE2PS-LABEL: @_Z11test_get_ssRb( @@ -4971,8 +4968,8 @@ int test_get_ss() { return get_ss(); } // AIE2PS-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret i32 [[TMP2]] // int test_get_ss(bool &tlast) { return get_ss(tlast); } @@ -4984,8 +4981,8 @@ int test_get_ss(bool &tlast) { return get_ss(tlast); } // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2P-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret i32 [[TMP2]] // // AIE2PS-LABEL: @_Z14test_get_ss_nbRb( @@ -4995,8 +4992,8 @@ int test_get_ss(bool &tlast) { return get_ss(tlast); } // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2PS-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret i32 [[TMP2]] // int test_get_ss_nb(bool &success) { return get_ss_nb(success); } @@ -5007,11 +5004,11 @@ int test_get_ss_nb(bool &success) { return get_ss_nb(success); } // AIE2P-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// AIE2P-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret i32 [[TMP2]] // // AIE2PS-LABEL: @_Z14test_get_ss_nbRbS_( @@ -5020,11 +5017,11 @@ int test_get_ss_nb(bool &success) { return get_ss_nb(success); } // AIE2PS-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// AIE2PS-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret i32 [[TMP2]] // int test_get_ss_nb(bool &success, bool &tlast) { @@ -5051,8 +5048,8 @@ int test_get_ss_int() { return get_ss_int(); } // AIE2P-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret i32 [[TMP2]] // // AIE2PS-LABEL: @_Z15test_get_ss_intRb( @@ -5061,8 +5058,8 @@ int test_get_ss_int() { return get_ss_int(); } // AIE2PS-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret i32 [[TMP2]] // int test_get_ss_int(bool &tlast) { return get_ss_int(tlast); } @@ -5074,8 +5071,8 @@ int test_get_ss_int(bool &tlast) { return get_ss_int(tlast); } // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2P-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret i32 [[TMP2]] // // AIE2PS-LABEL: @_Z18test_get_ss_nb_intRb( @@ -5085,8 +5082,8 @@ int test_get_ss_int(bool &tlast) { return get_ss_int(tlast); } // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2PS-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret i32 [[TMP2]] // int test_get_ss_nb_int(bool &success) { return get_ss_nb_int(success); } @@ -5097,11 +5094,11 @@ int test_get_ss_nb_int(bool &success) { return get_ss_nb_int(success); } // AIE2P-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// AIE2P-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret i32 [[TMP2]] // // AIE2PS-LABEL: @_Z18test_get_ss_nb_intRbS_( @@ -5110,11 +5107,11 @@ int test_get_ss_nb_int(bool &success) { return get_ss_nb_int(success); } // AIE2PS-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// AIE2PS-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret i32 [[TMP2]] // int test_get_ss_nb_int(bool &success, bool &tlast) { @@ -5141,8 +5138,8 @@ unsigned int test_get_ss_uint() { return get_ss_uint(); } // AIE2P-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret i32 [[TMP2]] // // AIE2PS-LABEL: @_Z16test_get_ss_uintRb( @@ -5151,8 +5148,8 @@ unsigned int test_get_ss_uint() { return get_ss_uint(); } // AIE2PS-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret i32 [[TMP2]] // unsigned int test_get_ss_uint(bool &tlast) { return get_ss_uint(tlast); } @@ -5164,8 +5161,8 @@ unsigned int test_get_ss_uint(bool &tlast) { return get_ss_uint(tlast); } // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2P-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret i32 [[TMP2]] // // AIE2PS-LABEL: @_Z19test_get_ss_nb_uintRb( @@ -5175,8 +5172,8 @@ unsigned int test_get_ss_uint(bool &tlast) { return get_ss_uint(tlast); } // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2PS-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret i32 [[TMP2]] // unsigned int test_get_ss_nb_uint(bool &success) { @@ -5189,11 +5186,11 @@ unsigned int test_get_ss_nb_uint(bool &success) { // AIE2P-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// AIE2P-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret i32 [[TMP2]] // // AIE2PS-LABEL: @_Z19test_get_ss_nb_uintRbS_( @@ -5202,11 +5199,11 @@ unsigned int test_get_ss_nb_uint(bool &success) { // AIE2PS-NEXT: [[TMP1:%.*]] = extractvalue { i32, i32 } [[TMP0]], 1 // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP3]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP3]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: [[TMP4:%.*]] = lshr i8 [[TMP3]], 1 -// AIE2PS-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret i32 [[TMP2]] // unsigned int test_get_ss_nb_uint(bool &success, bool &tlast) { @@ -5236,8 +5233,8 @@ v8int4 test_get_ss_v8int4() { return get_ss_v8int4(); } // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <4 x i8> [[TMP3]] // // AIE2PS-LABEL: @_Z18test_get_ss_v8int4Rb( @@ -5247,8 +5244,8 @@ v8int4 test_get_ss_v8int4() { return get_ss_v8int4(); } // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <4 x i8> [[TMP3]] // v8int4 test_get_ss_v8int4(bool &tlast) { return get_ss_v8int4(tlast); } @@ -5261,8 +5258,8 @@ v8int4 test_get_ss_v8int4(bool &tlast) { return get_ss_v8int4(tlast); } // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2P-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <4 x i8> [[TMP3]] // // AIE2PS-LABEL: @_Z21test_get_ss_nb_v8int4Rb( @@ -5273,8 +5270,8 @@ v8int4 test_get_ss_v8int4(bool &tlast) { return get_ss_v8int4(tlast); } // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2PS-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <4 x i8> [[TMP3]] // v8int4 test_get_ss_nb_v8int4(bool &success) { @@ -5288,11 +5285,11 @@ v8int4 test_get_ss_nb_v8int4(bool &success) { // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2P-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2P-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <4 x i8> [[TMP3]] // // AIE2PS-LABEL: @_Z21test_get_ss_nb_v8int4RbS_( @@ -5302,11 +5299,11 @@ v8int4 test_get_ss_nb_v8int4(bool &success) { // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2PS-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <4 x i8> [[TMP3]] // v8int4 test_get_ss_nb_v8int4(bool &success, bool &tlast) { @@ -5336,8 +5333,8 @@ v8uint4 test_get_ss_v8uint4() { return get_ss_v8uint4(); } // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <4 x i8> [[TMP3]] // // AIE2PS-LABEL: @_Z19test_get_ss_v8uint4Rb( @@ -5347,8 +5344,8 @@ v8uint4 test_get_ss_v8uint4() { return get_ss_v8uint4(); } // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <4 x i8> [[TMP3]] // v8uint4 test_get_ss_v8uint4(bool &tlast) { return get_ss_v8uint4(tlast); } @@ -5361,8 +5358,8 @@ v8uint4 test_get_ss_v8uint4(bool &tlast) { return get_ss_v8uint4(tlast); } // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2P-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <4 x i8> [[TMP3]] // // AIE2PS-LABEL: @_Z22test_get_ss_nb_v8uint4Rb( @@ -5373,8 +5370,8 @@ v8uint4 test_get_ss_v8uint4(bool &tlast) { return get_ss_v8uint4(tlast); } // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2PS-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <4 x i8> [[TMP3]] // v8uint4 test_get_ss_nb_v8uint4(bool &success) { @@ -5388,11 +5385,11 @@ v8uint4 test_get_ss_nb_v8uint4(bool &success) { // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2P-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2P-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <4 x i8> [[TMP3]] // // AIE2PS-LABEL: @_Z22test_get_ss_nb_v8uint4RbS_( @@ -5402,11 +5399,11 @@ v8uint4 test_get_ss_nb_v8uint4(bool &success) { // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2PS-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <4 x i8> [[TMP3]] // v8uint4 test_get_ss_nb_v8uint4(bool &success, bool &tlast) { @@ -5436,8 +5433,8 @@ v4int8 test_get_ss_v4int8() { return get_ss_v4int8(); } // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <4 x i8> [[TMP3]] // // AIE2PS-LABEL: @_Z18test_get_ss_v4int8Rb( @@ -5447,8 +5444,8 @@ v4int8 test_get_ss_v4int8() { return get_ss_v4int8(); } // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <4 x i8> [[TMP3]] // v4int8 test_get_ss_v4int8(bool &tlast) { return get_ss_v4int8(tlast); } @@ -5461,8 +5458,8 @@ v4int8 test_get_ss_v4int8(bool &tlast) { return get_ss_v4int8(tlast); } // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2P-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <4 x i8> [[TMP3]] // // AIE2PS-LABEL: @_Z21test_get_ss_nb_v4int8Rb( @@ -5473,8 +5470,8 @@ v4int8 test_get_ss_v4int8(bool &tlast) { return get_ss_v4int8(tlast); } // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2PS-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <4 x i8> [[TMP3]] // v4int8 test_get_ss_nb_v4int8(bool &success) { @@ -5488,11 +5485,11 @@ v4int8 test_get_ss_nb_v4int8(bool &success) { // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2P-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2P-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <4 x i8> [[TMP3]] // // AIE2PS-LABEL: @_Z21test_get_ss_nb_v4int8RbS_( @@ -5502,11 +5499,11 @@ v4int8 test_get_ss_nb_v4int8(bool &success) { // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2PS-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <4 x i8> [[TMP3]] // v4int8 test_get_ss_nb_v4int8(bool &success, bool &tlast) { @@ -5536,8 +5533,8 @@ v4uint8 test_get_ss_v4uint8() { return get_ss_v4uint8(); } // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <4 x i8> [[TMP3]] // // AIE2PS-LABEL: @_Z19test_get_ss_v4uint8Rb( @@ -5547,8 +5544,8 @@ v4uint8 test_get_ss_v4uint8() { return get_ss_v4uint8(); } // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <4 x i8> [[TMP3]] // v4uint8 test_get_ss_v4uint8(bool &tlast) { return get_ss_v4uint8(tlast); } @@ -5561,8 +5558,8 @@ v4uint8 test_get_ss_v4uint8(bool &tlast) { return get_ss_v4uint8(tlast); } // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2P-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <4 x i8> [[TMP3]] // // AIE2PS-LABEL: @_Z22test_get_ss_nb_v4uint8Rb( @@ -5573,8 +5570,8 @@ v4uint8 test_get_ss_v4uint8(bool &tlast) { return get_ss_v4uint8(tlast); } // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2PS-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <4 x i8> [[TMP3]] // v4uint8 test_get_ss_nb_v4uint8(bool &success) { @@ -5588,11 +5585,11 @@ v4uint8 test_get_ss_nb_v4uint8(bool &success) { // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2P-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2P-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <4 x i8> [[TMP3]] // // AIE2PS-LABEL: @_Z22test_get_ss_nb_v4uint8RbS_( @@ -5602,11 +5599,11 @@ v4uint8 test_get_ss_nb_v4uint8(bool &success) { // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <4 x i8> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2PS-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <4 x i8> [[TMP3]] // v4uint8 test_get_ss_nb_v4uint8(bool &success, bool &tlast) { @@ -5636,8 +5633,8 @@ v2int16 test_get_ss_v2int16() { return get_ss_v2int16(); } // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <2 x i16> [[TMP3]] // // AIE2PS-LABEL: @_Z19test_get_ss_v2int16Rb( @@ -5647,8 +5644,8 @@ v2int16 test_get_ss_v2int16() { return get_ss_v2int16(); } // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <2 x i16> [[TMP3]] // v2int16 test_get_ss_v2int16(bool &tlast) { return get_ss_v2int16(tlast); } @@ -5661,8 +5658,8 @@ v2int16 test_get_ss_v2int16(bool &tlast) { return get_ss_v2int16(tlast); } // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2P-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <2 x i16> [[TMP3]] // // AIE2PS-LABEL: @_Z22test_get_ss_nb_v2int16Rb( @@ -5673,8 +5670,8 @@ v2int16 test_get_ss_v2int16(bool &tlast) { return get_ss_v2int16(tlast); } // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2PS-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <2 x i16> [[TMP3]] // v2int16 test_get_ss_nb_v2int16(bool &success) { @@ -5688,11 +5685,11 @@ v2int16 test_get_ss_nb_v2int16(bool &success) { // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2P-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2P-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <2 x i16> [[TMP3]] // // AIE2PS-LABEL: @_Z22test_get_ss_nb_v2int16RbS_( @@ -5702,11 +5699,11 @@ v2int16 test_get_ss_nb_v2int16(bool &success) { // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2PS-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <2 x i16> [[TMP3]] // v2int16 test_get_ss_nb_v2int16(bool &success, bool &tlast) { @@ -5736,8 +5733,8 @@ v2uint16 test_get_ss_v2uint16() { return get_ss_v2uint16(); } // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <2 x i16> [[TMP3]] // // AIE2PS-LABEL: @_Z20test_get_ss_v2uint16Rb( @@ -5747,8 +5744,8 @@ v2uint16 test_get_ss_v2uint16() { return get_ss_v2uint16(); } // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <2 x i16> [[TMP3]] // v2uint16 test_get_ss_v2uint16(bool &tlast) { return get_ss_v2uint16(tlast); } @@ -5761,8 +5758,8 @@ v2uint16 test_get_ss_v2uint16(bool &tlast) { return get_ss_v2uint16(tlast); } // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2P-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <2 x i16> [[TMP3]] // // AIE2PS-LABEL: @_Z23test_get_ss_nb_v2uint16Rb( @@ -5773,8 +5770,8 @@ v2uint16 test_get_ss_v2uint16(bool &tlast) { return get_ss_v2uint16(tlast); } // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 // AIE2PS-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <2 x i16> [[TMP3]] // v2uint16 test_get_ss_nb_v2uint16(bool &success) { @@ -5788,11 +5785,11 @@ v2uint16 test_get_ss_nb_v2uint16(bool &success) { // AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2P-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // AIE2P-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2P-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2P-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2P-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2P-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2P-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2P-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2P-NEXT: ret <2 x i16> [[TMP3]] // // AIE2PS-LABEL: @_Z23test_get_ss_nb_v2uint16RbS_( @@ -5802,11 +5799,11 @@ v2uint16 test_get_ss_nb_v2uint16(bool &success) { // AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { i32, i32 } [[TMP0]], 0 // AIE2PS-NEXT: [[TMP3:%.*]] = bitcast i32 [[TMP2]] to <2 x i16> // AIE2PS-NEXT: [[TMP4:%.*]] = trunc i32 [[TMP1]] to i8 -// AIE2PS-NEXT: [[FROMBOOL_I:%.*]] = and i8 [[TMP4]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV_I:%.*]] = and i8 [[TMP4]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV_I]], ptr [[TLAST:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: [[TMP5:%.*]] = lshr i8 [[TMP4]], 1 -// AIE2PS-NEXT: [[FROMBOOL3_I:%.*]] = and i8 [[TMP5]], 1 -// AIE2PS-NEXT: store i8 [[FROMBOOL3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] +// AIE2PS-NEXT: [[STOREDV3_I:%.*]] = and i8 [[TMP5]], 1 +// AIE2PS-NEXT: store i8 [[STOREDV3_I]], ptr [[SUCCESS:%.*]], align 1, !tbaa [[TBAA2]] // AIE2PS-NEXT: ret <2 x i16> [[TMP3]] // v2uint16 test_get_ss_nb_v2uint16(bool &success, bool &tlast) { @@ -9956,50 +9953,46 @@ v64acc32 test_get_scd_expand_v64acc32(int en, int pos) { } // AIE2P-LABEL: @_Z33test_get_scd_expand_v32acc32_incriRi( // AIE2P-NEXT: entry: -// AIE2P-NEXT: [[TMP0:%.*]] = load i20, ptr [[POS:%.*]], align 4, !tbaa [[TBAA6:![0-9]+]] -// AIE2P-NEXT: [[TMP1:%.*]] = inttoptr i20 [[TMP0]] to ptr -// AIE2P-NEXT: [[TMP2:%.*]] = tail call { <16 x i64>, i32 } @llvm.aie2p.scd.expand.ACC1024.incr(i32 [[EN:%.*]], ptr [[TMP1]]) -// AIE2P-NEXT: [[TMP3:%.*]] = extractvalue { <16 x i64>, i32 } [[TMP2]], 1 -// AIE2P-NEXT: store i32 [[TMP3]], ptr [[POS]], align 4 -// AIE2P-NEXT: [[TMP4:%.*]] = extractvalue { <16 x i64>, i32 } [[TMP2]], 0 -// AIE2P-NEXT: [[TMP5:%.*]] = bitcast <16 x i64> [[TMP4]] to <32 x i32> -// AIE2P-NEXT: ret <32 x i32> [[TMP5]] +// AIE2P-NEXT: [[TMP0:%.*]] = load ptr, ptr [[POS:%.*]], align 4, !tbaa [[TBAA6:![0-9]+]] +// AIE2P-NEXT: [[TMP1:%.*]] = tail call { <16 x i64>, i32 } @llvm.aie2p.scd.expand.ACC1024.incr(i32 [[EN:%.*]], ptr [[TMP0]]) +// AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { <16 x i64>, i32 } [[TMP1]], 1 +// AIE2P-NEXT: store i32 [[TMP2]], ptr [[POS]], align 4 +// AIE2P-NEXT: [[TMP3:%.*]] = extractvalue { <16 x i64>, i32 } [[TMP1]], 0 +// AIE2P-NEXT: [[TMP4:%.*]] = bitcast <16 x i64> [[TMP3]] to <32 x i32> +// AIE2P-NEXT: ret <32 x i32> [[TMP4]] // // AIE2PS-LABEL: @_Z33test_get_scd_expand_v32acc32_incriRi( // AIE2PS-NEXT: entry: -// AIE2PS-NEXT: [[TMP0:%.*]] = load i20, ptr [[POS:%.*]], align 4, !tbaa [[TBAA6:![0-9]+]] -// AIE2PS-NEXT: [[TMP1:%.*]] = inttoptr i20 [[TMP0]] to ptr -// AIE2PS-NEXT: [[TMP2:%.*]] = tail call { <16 x i64>, i32 } @llvm.aie2ps.scd.expand.ACC1024.incr(i32 [[EN:%.*]], ptr [[TMP1]]) -// AIE2PS-NEXT: [[TMP3:%.*]] = extractvalue { <16 x i64>, i32 } [[TMP2]], 1 -// AIE2PS-NEXT: store i32 [[TMP3]], ptr [[POS]], align 4 -// AIE2PS-NEXT: [[TMP4:%.*]] = extractvalue { <16 x i64>, i32 } [[TMP2]], 0 -// AIE2PS-NEXT: [[TMP5:%.*]] = bitcast <16 x i64> [[TMP4]] to <32 x i32> -// AIE2PS-NEXT: ret <32 x i32> [[TMP5]] +// AIE2PS-NEXT: [[TMP0:%.*]] = load ptr, ptr [[POS:%.*]], align 4, !tbaa [[TBAA6:![0-9]+]] +// AIE2PS-NEXT: [[TMP1:%.*]] = tail call { <16 x i64>, i32 } @llvm.aie2ps.scd.expand.ACC1024.incr(i32 [[EN:%.*]], ptr [[TMP0]]) +// AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { <16 x i64>, i32 } [[TMP1]], 1 +// AIE2PS-NEXT: store i32 [[TMP2]], ptr [[POS]], align 4 +// AIE2PS-NEXT: [[TMP3:%.*]] = extractvalue { <16 x i64>, i32 } [[TMP1]], 0 +// AIE2PS-NEXT: [[TMP4:%.*]] = bitcast <16 x i64> [[TMP3]] to <32 x i32> +// AIE2PS-NEXT: ret <32 x i32> [[TMP4]] // v32acc32 test_get_scd_expand_v32acc32_incr(int en, int &pos) { return get_scd_expand_v32acc32_incr(en, pos); } // AIE2P-LABEL: @_Z33test_get_scd_expand_v64acc32_incriRi( // AIE2P-NEXT: entry: -// AIE2P-NEXT: [[TMP0:%.*]] = load i20, ptr [[POS:%.*]], align 4, !tbaa [[TBAA6]] -// AIE2P-NEXT: [[TMP1:%.*]] = inttoptr i20 [[TMP0]] to ptr -// AIE2P-NEXT: [[TMP2:%.*]] = tail call { <32 x i64>, i32 } @llvm.aie2p.scd.expand.ACC2048.incr(i32 [[EN:%.*]], ptr [[TMP1]]) -// AIE2P-NEXT: [[TMP3:%.*]] = extractvalue { <32 x i64>, i32 } [[TMP2]], 1 -// AIE2P-NEXT: store i32 [[TMP3]], ptr [[POS]], align 4 -// AIE2P-NEXT: [[TMP4:%.*]] = extractvalue { <32 x i64>, i32 } [[TMP2]], 0 -// AIE2P-NEXT: [[TMP5:%.*]] = bitcast <32 x i64> [[TMP4]] to <64 x i32> -// AIE2P-NEXT: ret <64 x i32> [[TMP5]] +// AIE2P-NEXT: [[TMP0:%.*]] = load ptr, ptr [[POS:%.*]], align 4, !tbaa [[TBAA6]] +// AIE2P-NEXT: [[TMP1:%.*]] = tail call { <32 x i64>, i32 } @llvm.aie2p.scd.expand.ACC2048.incr(i32 [[EN:%.*]], ptr [[TMP0]]) +// AIE2P-NEXT: [[TMP2:%.*]] = extractvalue { <32 x i64>, i32 } [[TMP1]], 1 +// AIE2P-NEXT: store i32 [[TMP2]], ptr [[POS]], align 4 +// AIE2P-NEXT: [[TMP3:%.*]] = extractvalue { <32 x i64>, i32 } [[TMP1]], 0 +// AIE2P-NEXT: [[TMP4:%.*]] = bitcast <32 x i64> [[TMP3]] to <64 x i32> +// AIE2P-NEXT: ret <64 x i32> [[TMP4]] // // AIE2PS-LABEL: @_Z33test_get_scd_expand_v64acc32_incriRi( // AIE2PS-NEXT: entry: -// AIE2PS-NEXT: [[TMP0:%.*]] = load i20, ptr [[POS:%.*]], align 4, !tbaa [[TBAA6]] -// AIE2PS-NEXT: [[TMP1:%.*]] = inttoptr i20 [[TMP0]] to ptr -// AIE2PS-NEXT: [[TMP2:%.*]] = tail call { <32 x i64>, i32 } @llvm.aie2ps.scd.expand.ACC2048.incr(i32 [[EN:%.*]], ptr [[TMP1]]) -// AIE2PS-NEXT: [[TMP3:%.*]] = extractvalue { <32 x i64>, i32 } [[TMP2]], 1 -// AIE2PS-NEXT: store i32 [[TMP3]], ptr [[POS]], align 4 -// AIE2PS-NEXT: [[TMP4:%.*]] = extractvalue { <32 x i64>, i32 } [[TMP2]], 0 -// AIE2PS-NEXT: [[TMP5:%.*]] = bitcast <32 x i64> [[TMP4]] to <64 x i32> -// AIE2PS-NEXT: ret <64 x i32> [[TMP5]] +// AIE2PS-NEXT: [[TMP0:%.*]] = load ptr, ptr [[POS:%.*]], align 4, !tbaa [[TBAA6]] +// AIE2PS-NEXT: [[TMP1:%.*]] = tail call { <32 x i64>, i32 } @llvm.aie2ps.scd.expand.ACC2048.incr(i32 [[EN:%.*]], ptr [[TMP0]]) +// AIE2PS-NEXT: [[TMP2:%.*]] = extractvalue { <32 x i64>, i32 } [[TMP1]], 1 +// AIE2PS-NEXT: store i32 [[TMP2]], ptr [[POS]], align 4 +// AIE2PS-NEXT: [[TMP3:%.*]] = extractvalue { <32 x i64>, i32 } [[TMP1]], 0 +// AIE2PS-NEXT: [[TMP4:%.*]] = bitcast <32 x i64> [[TMP3]] to <64 x i32> +// AIE2PS-NEXT: ret <64 x i32> [[TMP4]] // v64acc32 test_get_scd_expand_v64acc32_incr(int en, int &pos) { return get_scd_expand_v64acc32_incr(en, pos); diff --git a/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp b/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp index 71d58b742b3d..fdabefba18b7 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp @@ -4,7 +4,7 @@ // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// Modifications (c) Copyright 2024 Advanced Micro Devices, Inc. or its +// Modifications (c) Copyright 2024-2026 Advanced Micro Devices, Inc. or its // affiliates // //===----------------------------------------------------------------------===// @@ -987,6 +987,98 @@ static bool canSimplifyNullStoreOrGEP(StoreInst &SI) { !NullPointerIsDefined(SI.getFunction(), SI.getPointerAddressSpace())); } +/// Optimize loads that feed trunc->inttoptr patterns on targets with +/// non-byte-aligned pointer sizes. +/// +/// Pattern: load iN -> trunc iM -> inttoptr ptr (where iM is pointer size) +/// Transform: load iN -> (zext (ptrtoint (load ptr))) +/// +/// This transformation is only applied when all uses of the load only +/// access the low PtrSize bits, ensuring the transformation is safe. +/// +/// Safety is verified by checking each use: +/// - Truncations to PtrSize or smaller bits are safe +/// - And operations with masks that don't touch upper bits are safe +/// - Other uses are conservatively rejected +/// +/// Note: We manually check specific patterns rather than using DemandedBits +/// analysis because DemandedBits/SimplifyDemandedBits would modify the IR, +/// and we need a read-only check here. This approach could be extended to +/// handle additional safe patterns in the future (e.g., shifts, specific +/// arithmetic operations with known ranges). +/// +/// \returns the replacement value if optimization was applied, nullptr +/// otherwise. +static Value *foldLoadWithTruncIntToPtrPattern(InstCombinerImpl &IC, + LoadInst &LI) { + if (!LI.getType()->isIntegerTy()) + return nullptr; + + const unsigned LoadWidth = LI.getType()->getIntegerBitWidth(); + const unsigned AS = LI.getPointerAddressSpace(); + const DataLayout &DL = IC.getDataLayout(); + const unsigned PtrSize = DL.getPointerSizeInBits(AS); + + // Check if pattern exists: trunc to PtrSize -> inttoptr + bool HasPattern = false; + for (const User *U : LI.users()) { + if (const auto *Trunc = dyn_cast(U)) { + if (Trunc->getDestTy()->getIntegerBitWidth() == PtrSize) { + for (const User *TU : Trunc->users()) { + if (isa(TU)) { + HasPattern = true; + break; + } + } + } + } + if (HasPattern) + break; + } + + if (!HasPattern) + return nullptr; + + // Safety check: verify all uses only need low PtrSize bits + const APInt UpperBitsMask = + APInt::getHighBitsSet(LoadWidth, LoadWidth - PtrSize); + + for (const User *LoadUser : LI.users()) { + // Trunc to PtrSize or smaller is safe + if (const auto *T = dyn_cast(LoadUser)) { + if (T->getDestTy()->getIntegerBitWidth() > PtrSize) + return nullptr; // Early return: unsafe trunc + continue; + } + + // And with mask that doesn't touch upper bits is safe + if (const auto *And = dyn_cast(LoadUser)) { + if (And->getOpcode() == Instruction::And) { + if (const auto *C = dyn_cast(And->getOperand(1))) { + if ((C->getValue() & UpperBitsMask).isZero()) + continue; // Safe + } + } + } + + // Other uses - conservatively reject + return nullptr; // Early return: unsafe use + } + + // All checks passed - apply transformation + Type *PtrTy = PointerType::get(LI.getContext(), AS); + LoadInst *PtrLoad = + new LoadInst(PtrTy, LI.getPointerOperand(), LI.getName(), LI.isVolatile(), + LI.getAlign(), LI.getOrdering(), LI.getSyncScopeID()); + PtrLoad->setDebugLoc(LI.getDebugLoc()); + PtrLoad->copyMetadata(LI); + IC.InsertNewInstWith(PtrLoad, LI.getIterator()); + + Value *PtrToInt = IC.Builder.CreatePtrToInt( + PtrLoad, IntegerType::get(LI.getContext(), PtrSize)); + return IC.Builder.CreateZExt(PtrToInt, LI.getType()); +} + static bool canSimplifyNullLoadOrGEP(LoadInst &LI, Value *Op) { if (GetElementPtrInst *GEPI = dyn_cast(Op)) { const Value *GEPI0 = GEPI->getOperand(0); @@ -1002,6 +1094,10 @@ static bool canSimplifyNullLoadOrGEP(LoadInst &LI, Value *Op) { } Instruction *InstCombinerImpl::visitLoadInst(LoadInst &LI) { + // Optimize integer loads that feed trunc->inttoptr pattern + if (Value *V = foldLoadWithTruncIntToPtrPattern(*this, LI)) + return replaceInstUsesWith(LI, V); + Value *Op = LI.getOperand(0); if (Value *Res = simplifyLoadInst(&LI, Op, SQ.getWithInstruction(&LI))) return replaceInstUsesWith(LI, Res); diff --git a/llvm/test/CodeGen/AIE/opt/load-trunc-inttoptr-fold.ll b/llvm/test/CodeGen/AIE/opt/load-trunc-inttoptr-fold.ll new file mode 100644 index 000000000000..3b745681c5d2 --- /dev/null +++ b/llvm/test/CodeGen/AIE/opt/load-trunc-inttoptr-fold.ll @@ -0,0 +1,95 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; +; This file is licensed under the Apache License v2.0 with LLVM Exceptions. +; See https://llvm.org/LICENSE.txt for license information. +; SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +; +; (c) Copyright 2026 Advanced Micro Devices, Inc. or its affiliates +; +; RUN: opt -S -passes=instcombine -mtriple=aie2p %s | FileCheck %s +; RUN: opt -S -passes=instcombine -mtriple=aie2ps %s | FileCheck %s + +; Test InstCombine optimization for load->trunc->inttoptr pattern on aie +; The aie target has 20-bit pointers, which are stored as i24 (3 bytes) +; This optimization converts: load i24 -> trunc i20 -> inttoptr +; Into: load ptr -> ptrtoint -> zext i24 +; This allows SROA to recognize pointer-only allocas and promote them + +; Basic test: load i24 -> trunc i20 -> inttoptr should be optimized +define ptr @test_load_trunc_inttoptr_basic(ptr %p) { +; CHECK-LABEL: @test_load_trunc_inttoptr_basic( +; CHECK-NEXT: [[LOAD12:%.*]] = load ptr, ptr [[P:%.*]], align 4 +; CHECK-NEXT: ret ptr [[LOAD12]] +; + %load = load i24, ptr %p, align 4 + %trunc = trunc i24 %load to i20 + %ptr = inttoptr i20 %trunc to ptr + ret ptr %ptr +} + +; Test with safe additional use (and with small mask that doesn't touch upper bits) +define ptr @test_load_trunc_inttoptr_with_and(ptr %p) { +; CHECK-LABEL: @test_load_trunc_inttoptr_with_and( +; CHECK-NEXT: [[LOAD12:%.*]] = load ptr, ptr [[P:%.*]], align 4 +; CHECK-NEXT: ret ptr [[LOAD12]] +; + %load = load i24, ptr %p, align 4 + %and = and i24 %load, 31 ; Only uses low 5 bits - safe + %trunc = trunc i24 %load to i20 + %ptr = inttoptr i20 %trunc to ptr + ret ptr %ptr +} + +; Test with multiple safe truncs (all to <= 20 bits) +define ptr @test_load_trunc_inttoptr_multiple_safe_truncs(ptr %p) { +; CHECK-LABEL: @test_load_trunc_inttoptr_multiple_safe_truncs( +; CHECK-NEXT: [[LOAD12:%.*]] = load ptr, ptr [[P:%.*]], align 4 +; CHECK-NEXT: ret ptr [[LOAD12]] +; + %load = load i24, ptr %p, align 4 + %trunc1 = trunc i24 %load to i16 ; Safe: 16 <= 20 + %trunc2 = trunc i24 %load to i20 ; Safe: 20 <= 20 + %ptr = inttoptr i20 %trunc2 to ptr + ret ptr %ptr +} + +; Negative test: unsafe trunc (> 20 bits) should prevent optimization +define i22 @test_load_trunc_inttoptr_unsafe_trunc(ptr %p) { +; CHECK-LABEL: @test_load_trunc_inttoptr_unsafe_trunc( +; CHECK-NEXT: [[LOAD:%.*]] = load i24, ptr [[P:%.*]], align 4 +; CHECK-NEXT: [[TRUNC_UNSAFE:%.*]] = trunc i24 [[LOAD]] to i22 +; CHECK-NEXT: ret i22 [[TRUNC_UNSAFE]] +; + %load = load i24, ptr %p, align 4 + %trunc_unsafe = trunc i24 %load to i22 ; Unsafe: 22 > 20 + %trunc = trunc i24 %load to i20 + %ptr = inttoptr i20 %trunc to ptr + ret i22 %trunc_unsafe ; Use the unsafe trunc +} + +; Negative test: and with mask that touches upper bits should prevent optimization +define i24 @test_load_trunc_inttoptr_unsafe_and(ptr %p) { +; CHECK-LABEL: @test_load_trunc_inttoptr_unsafe_and( +; CHECK-NEXT: [[LOAD:%.*]] = load i24, ptr [[P:%.*]], align 4 +; CHECK-NEXT: ret i24 [[LOAD]] +; + %load = load i24, ptr %p, align 4 + %and = and i24 %load, 16777215 ; Uses all 24 bits including upper bits + %trunc = trunc i24 %load to i20 + %ptr = inttoptr i20 %trunc to ptr + ret i24 %and ; Use the and result +} + +; Negative test: other use type should prevent optimization +define i24 @test_load_trunc_inttoptr_other_use(ptr %p) { +; CHECK-LABEL: @test_load_trunc_inttoptr_other_use( +; CHECK-NEXT: [[LOAD:%.*]] = load i24, ptr [[P:%.*]], align 4 +; CHECK-NEXT: [[ADD:%.*]] = add i24 [[LOAD]], 1 +; CHECK-NEXT: ret i24 [[ADD]] +; + %load = load i24, ptr %p, align 4 + %add = add i24 %load, 1 ; Unknown use - conservatively unsafe + %trunc = trunc i24 %load to i20 + %ptr = inttoptr i20 %trunc to ptr + ret i24 %add ; Use the add result +} diff --git a/llvm/test/Transforms/InstCombine/indexed-gep-compares.ll b/llvm/test/Transforms/InstCombine/indexed-gep-compares.ll index 53c9736da59c..826bfcdd4848 100644 --- a/llvm/test/Transforms/InstCombine/indexed-gep-compares.ll +++ b/llvm/test/Transforms/InstCombine/indexed-gep-compares.ll @@ -1,4 +1,12 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; +; Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +; See https://llvm.org/LICENSE.txt for license information. +; SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +; +; Modifications (c) Copyright 2024-2026 Advanced Micro Devices, Inc. or its +; affiliates + ; RUN: opt -passes='instcombine' -S < %s | FileCheck %s ; In many of these tests nuw can be inferred on the sunk GEP in the exit @@ -373,15 +381,8 @@ declare i32 @__gxx_personality_v0(...) define i1 @test8(ptr %in, i64 %offset) { ; CHECK-LABEL: @test8( ; CHECK-NEXT: entry: -; CHECK-NEXT: [[LD:%.*]] = load i64, ptr [[IN:%.*]], align 8 -; CHECK-NEXT: [[TMP0:%.*]] = trunc i64 [[LD]] to i32 -; CHECK-NEXT: [[CASTI8:%.*]] = inttoptr i32 [[TMP0]] to ptr -; CHECK-NEXT: [[TMP1:%.*]] = trunc i64 [[OFFSET:%.*]] to i32 -; CHECK-NEXT: [[GEPI8:%.*]] = getelementptr inbounds i8, ptr [[CASTI8]], i32 [[TMP1]] -; CHECK-NEXT: [[TMP2:%.*]] = trunc i64 [[LD]] to i32 -; CHECK-NEXT: [[PTRCAST:%.*]] = inttoptr i32 [[TMP2]] to ptr -; CHECK-NEXT: [[GEPI32:%.*]] = getelementptr inbounds nuw i8, ptr [[PTRCAST]], i32 4 -; CHECK-NEXT: [[CMP:%.*]] = icmp eq ptr [[GEPI32]], [[GEPI8]] +; CHECK-NEXT: [[TMP2:%.*]] = trunc i64 [[LD:%.*]] to i32 +; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[TMP2]], 4 ; CHECK-NEXT: ret i1 [[CMP]] ; entry: diff --git a/llvm/test/Transforms/InstCombine/load-bitcast32.ll b/llvm/test/Transforms/InstCombine/load-bitcast32.ll index ae2a874f4ba6..598abb8e1a0b 100644 --- a/llvm/test/Transforms/InstCombine/load-bitcast32.ll +++ b/llvm/test/Transforms/InstCombine/load-bitcast32.ll @@ -4,7 +4,7 @@ ; See https://llvm.org/LICENSE.txt for license information. ; SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ; -; Modifications (c) Copyright 2024 Advanced Micro Devices, Inc. or its +; Modifications (c) Copyright 2024-2026 Advanced Micro Devices, Inc. or its ; affiliates ; RUN: opt -passes=instcombine -S < %s | FileCheck %s @@ -15,8 +15,7 @@ target datalayout = "p:32:32:32" define ptr @test1(ptr %x) { ; CHECK-LABEL: @test1( ; CHECK-NEXT: entry: -; CHECK-NEXT: [[B1:%.*]] = load i32, ptr [[X:%.*]], align 4 -; CHECK-NEXT: [[C:%.*]] = inttoptr i32 [[B1]] to ptr +; CHECK-NEXT: [[C:%.*]] = load ptr, ptr [[X:%.*]], align 4 ; CHECK-NEXT: ret ptr [[C]] ; entry: diff --git a/llvm/test/Transforms/InstCombine/load-intPtrType.ll b/llvm/test/Transforms/InstCombine/load-intPtrType.ll index 63598efbb7fc..1dac34904410 100644 --- a/llvm/test/Transforms/InstCombine/load-intPtrType.ll +++ b/llvm/test/Transforms/InstCombine/load-intPtrType.ll @@ -4,7 +4,7 @@ ; See https://llvm.org/LICENSE.txt for license information. ; SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ; -; (c) Copyright 2024 Advanced Micro Devices, Inc. or its affiliates +; (c) Copyright 2024-2026 Advanced Micro Devices, Inc. or its affiliates ; RUN: opt -passes=instcombine -S < %s | FileCheck %s @@ -26,8 +26,7 @@ entry: define ptr @load_intPtrType_to_ptr(ptr %x) { ; CHECK-LABEL: @load_intPtrType_to_ptr( ; CHECK-NEXT: entry: -; CHECK-NEXT: [[B1:%.*]] = load i20, ptr [[X:%.*]], align 4 -; CHECK-NEXT: [[C:%.*]] = inttoptr i20 [[B1]] to ptr +; CHECK-NEXT: [[C:%.*]] = load ptr, ptr [[X:%.*]], align 4 ; CHECK-NEXT: ret ptr [[C]] ; entry: